tools: Return position from generated vertex shaders
This is required to generate valid MSL code, and will soon be
validated by Tint too.
Change-Id: I4c5f5c4ecb1c91131c934de1132217d9f6be1f8e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53420
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl b/test/intrinsics/gen/textureStore/05ce15.wgsl
index f0df428..877e6f0 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_05ce15();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.hlsl
index d38cd87..ca8dc95 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<float4> arg_0 : register(u0, space1);
void textureStore_05ce15() {
arg_0[int2(0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_05ce15();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
index d9b79d5..ee23e7f 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_05ce15 "textureStore_05ce15"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v2int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_05ce15 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_05ce15 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_05ce15
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_05ce15
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_05ce15
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_05ce15
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_05ce15
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.wgsl
index 75c0ae2..f31db20 100644
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_05ce15();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl b/test/intrinsics/gen/textureStore/064c7f.wgsl
index caa9253..a999c8b 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_064c7f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.hlsl
index 85108a6..f627b4d 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<float4> arg_0 : register(u0, space1);
void textureStore_064c7f() {
arg_0[int2(0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_064c7f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
index 97edb60..b4bba70 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_064c7f "textureStore_064c7f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,43 @@
%7 = OpTypeImage %float 2D 0 0 0 2 Rg32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v2int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_064c7f = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_064c7f = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_064c7f
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_064c7f
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_064c7f
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_064c7f
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_064c7f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.wgsl
index 500c2a1..46247d5 100644
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_064c7f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl b/test/intrinsics/gen/textureStore/068641.wgsl
index b5a277b..27c616e 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl
+++ b/test/intrinsics/gen/textureStore/068641.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_068641();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/068641.wgsl.expected.hlsl
index e744a5e..89951d9 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<uint4> arg_0 : register(u0, space1);
void textureStore_068641() {
arg_0[int3(0, 0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_068641();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
index 17de556..ad9d55c 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_068641 "textureStore_068641"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %17 = OpConstantNull %v3int
+ %21 = OpConstantNull %v3int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_068641 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_068641 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_068641
+ %31 = OpFunctionCall %void %textureStore_068641
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_068641
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_068641
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_068641
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_068641
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/068641.wgsl.expected.wgsl
index 1cff6cd..dbb407b 100644
--- a/test/intrinsics/gen/textureStore/068641.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_068641();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl
index dbcb216..24c67b7 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_0af6b5();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.hlsl
index 6e80c55..45c7624 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<float4> arg_0 : register(u0, space1);
void textureStore_0af6b5() {
arg_0[int2(0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_0af6b5();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
index d651f50..d83c8d9 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_0af6b5 "textureStore_0af6b5"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 2D 0 0 0 2 R32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v2int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_0af6b5 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_0af6b5 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_0af6b5
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_0af6b5
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_0af6b5
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_0af6b5
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_0af6b5
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.wgsl
index dedf0b6..6a1e8dd 100644
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_0af6b5();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl
index b6189de..5133f2e 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_0c3dff();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.hlsl
index dcc9b15..2212b86 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<uint4> arg_0 : register(u0, space1);
void textureStore_0c3dff() {
arg_0[int2(0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_0c3dff();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
index 32263fd..0bc05e8 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_0c3dff "textureStore_0c3dff"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %17 = OpConstantNull %v2int
+ %21 = OpConstantNull %v2int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_0c3dff = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_0c3dff = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_0c3dff
+ %31 = OpFunctionCall %void %textureStore_0c3dff
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_0c3dff
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_0c3dff
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_0c3dff
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_0c3dff
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.wgsl
index 6420eaf..96e508b 100644
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_0c3dff();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl b/test/intrinsics/gen/textureStore/102722.wgsl
index c1c0bf4..37c8455 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl
+++ b/test/intrinsics/gen/textureStore/102722.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_102722();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/102722.wgsl.expected.hlsl
index bfbb63b..b6604d9 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<uint4> arg_0 : register(u0, space1);
void textureStore_102722() {
arg_0[1] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_102722();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
index 0406d15..1fc763e 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_102722 "textureStore_102722"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,44 @@
%7 = OpTypeImage %uint 1D 0 0 0 2 R32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%v4uint = OpTypeVector %uint 4
- %18 = OpConstantNull %v4uint
+ %22 = OpConstantNull %v4uint
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_102722 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %18
+%textureStore_102722 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_102722
+ %30 = OpFunctionCall %void %textureStore_102722
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_102722
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_102722
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_102722
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_102722
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/102722.wgsl.expected.wgsl
index bab8dc4..78bc05d 100644
--- a/test/intrinsics/gen/textureStore/102722.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_102722();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl
index 5296393..70562e8 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_1bbd08();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.hlsl
index 561bce9..870bbe9 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<float4> arg_0 : register(u0, space1);
void textureStore_1bbd08() {
arg_0[int3(0, 0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_1bbd08();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
index 9bde491..f177c1b 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_1bbd08 "textureStore_1bbd08"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 3D 0 0 0 2 Rgba8
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v3int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_1bbd08 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_1bbd08 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_1bbd08
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_1bbd08
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_1bbd08
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_1bbd08
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_1bbd08
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.wgsl
index 0b676c2..d265bc0 100644
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_1bbd08();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl
index 0170e00..134e7f8 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_1c02e7();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
index eead151..e0d0308 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<int4> arg_0 : register(u0, space1);
void textureStore_1c02e7() {
arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_1c02e7();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
index b1fef26..6f3cf7b 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 40
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_1c02e7 "textureStore_1c02e7"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,34 +32,46 @@
%7 = OpTypeImage %int 2D 0 1 0 2 R32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4int = OpTypeVector %int 4
- %20 = OpConstantNull %v4int
+ %24 = OpConstantNull %v4int
+ %25 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_1c02e7 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %18 %20
+%textureStore_1c02e7 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %22 %24
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %22 = OpLabel
+%tint_symbol_2 = OpFunction %void None %25
+%tint_symbol = OpFunctionParameter %v4float
+ %28 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %30 = OpLabel
OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_1c02e7
+ %32 = OpFunctionCall %void %textureStore_1c02e7
+ %33 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_1c02e7
+%fragment_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_1c02e7
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %29 = OpLabel
- %30 = OpFunctionCall %void %textureStore_1c02e7
+%compute_main = OpFunction %void None %13
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_1c02e7
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.wgsl
index 715524f..17368d2 100644
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_1c02e7();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl b/test/intrinsics/gen/textureStore/22d955.wgsl
index 815e628..ada2279 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_22d955();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
index 20cec38..0d9852c 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<uint4> arg_0 : register(u0, space1);
void textureStore_22d955() {
arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_22d955();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
index 01dc1cc..bde9762 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 41
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_22d955 "textureStore_22d955"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,35 +32,47 @@
%7 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4uint = OpTypeVector %uint 4
- %21 = OpConstantNull %v4uint
+ %25 = OpConstantNull %v4uint
+ %26 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_22d955 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %19 %21
+%textureStore_22d955 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %23 %25
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %23 = OpLabel
+%tint_symbol_2 = OpFunction %void None %26
+%tint_symbol = OpFunctionParameter %v4float
+ %29 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %31 = OpLabel
OpStore %tint_pointsize %float_1
- %25 = OpFunctionCall %void %textureStore_22d955
+ %33 = OpFunctionCall %void %textureStore_22d955
+ %34 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_22d955
+%fragment_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_22d955
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %30 = OpLabel
- %31 = OpFunctionCall %void %textureStore_22d955
+%compute_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_22d955
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.wgsl
index 08c8bb1..cb9bde4 100644
--- a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_22d955();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl b/test/intrinsics/gen/textureStore/26bf70.wgsl
index 693d8e8..6f8b38d 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_26bf70();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.hlsl
index 8a9bbda..323424c 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<uint4> arg_0 : register(u0, space1);
void textureStore_26bf70() {
arg_0[int2(0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_26bf70();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
index 2a8ef15..ba254cc 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_26bf70 "textureStore_26bf70"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %17 = OpConstantNull %v2int
+ %21 = OpConstantNull %v2int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_26bf70 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_26bf70 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_26bf70
+ %31 = OpFunctionCall %void %textureStore_26bf70
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_26bf70
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_26bf70
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_26bf70
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_26bf70
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.wgsl
index d1ff649..a2bb93d 100644
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_26bf70();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl b/test/intrinsics/gen/textureStore/2796b4.wgsl
index 3b2e3b2..627e15f 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2796b4();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.hlsl
index 88e1e0f..ead20b9 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<int4> arg_0 : register(u0, space1);
void textureStore_2796b4() {
arg_0[int3(0, 0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_2796b4();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
index e26f6b6..3c77ab2 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_2796b4 "textureStore_2796b4"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,44 @@
%7 = OpTypeImage %int 3D 0 0 0 2 Rg32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
+ %20 = OpConstantNull %v3int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_2796b4 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_2796b4 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_2796b4
+ %30 = OpFunctionCall %void %textureStore_2796b4
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_2796b4
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_2796b4
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_2796b4
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_2796b4
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.wgsl
index d307706..f541a87 100644
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2796b4();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl
index 7a5200f..882b766 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2ac6c7();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.hlsl
index 2e5bd83..0427db5 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<float4> arg_0 : register(u0, space1);
void textureStore_2ac6c7() {
arg_0[1] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_2ac6c7();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
index 6a05c5c..ae33248 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_2ac6c7 "textureStore_2ac6c7"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 R32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_2ac6c7 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_2ac6c7 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_2ac6c7
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_2ac6c7
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_2ac6c7
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_2ac6c7
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_2ac6c7
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.wgsl
index 7d3f57a..6dd1a80 100644
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2ac6c7();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl
index 2f4f9d7..18b7284 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2eb2a4();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.hlsl
index 2bfcdeb..b44f1ad 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<uint4> arg_0 : register(u0, space1);
void textureStore_2eb2a4() {
arg_0[1] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_2eb2a4();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
index fd59253..01255a8 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_2eb2a4 "textureStore_2eb2a4"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,44 @@
%7 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%v4uint = OpTypeVector %uint 4
- %18 = OpConstantNull %v4uint
+ %22 = OpConstantNull %v4uint
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_2eb2a4 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %18
+%textureStore_2eb2a4 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_2eb2a4
+ %30 = OpFunctionCall %void %textureStore_2eb2a4
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_2eb2a4
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_2eb2a4
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_2eb2a4
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_2eb2a4
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.wgsl
index f62d137..c1d63b6 100644
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2eb2a4();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl
index c710a47..ac2c48e 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2ed2a3();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.hlsl
index 61caf3b..cf0bd1e 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<float4> arg_0 : register(u0, space1);
void textureStore_2ed2a3() {
arg_0[1] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_2ed2a3();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
index 3c4624c..e517f8c 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_2ed2a3 "textureStore_2ed2a3"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_2ed2a3 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_2ed2a3 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_2ed2a3
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_2ed2a3
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_2ed2a3
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_2ed2a3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_2ed2a3
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.wgsl
index 366b088..adb55f6 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_2ed2a3();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl b/test/intrinsics/gen/textureStore/31745b.wgsl
index be9ae40..68d862e 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_31745b();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.hlsl
index 2205238..6978776 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<int4> arg_0 : register(u0, space1);
void textureStore_31745b() {
arg_0[int2(0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_31745b();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
index 101f8dd..d2216e9 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_31745b "textureStore_31745b"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,44 @@
%7 = OpTypeImage %int 2D 0 0 0 2 Rg32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
+ %20 = OpConstantNull %v2int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_31745b = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_31745b = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_31745b
+ %30 = OpFunctionCall %void %textureStore_31745b
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_31745b
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_31745b
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_31745b
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_31745b
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.wgsl
index fc1848f..0349879 100644
--- a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_31745b();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl b/test/intrinsics/gen/textureStore/32f368.wgsl
index 82fea17..e4104c3 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_32f368();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
index 1b4385dec..f8e9148 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<float4> arg_0 : register(u0, space1);
void textureStore_32f368() {
arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_32f368();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
index 63c2b1c..9c38831 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_32f368 "textureStore_32f368"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,35 +31,45 @@
%7 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantNull %v4float
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_32f368 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %18 %20
+%textureStore_32f368 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %22 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %22 = OpLabel
- OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_32f368
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_32f368
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %29 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %28 = OpLabel
+ OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %textureStore_32f368
+ %31 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_32f368
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_32f368
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.wgsl
index 43d6af5..c7addc8 100644
--- a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_32f368();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl b/test/intrinsics/gen/textureStore/331aee.wgsl
index f4bf4e4..a5934bb 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_331aee();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.hlsl
index ef51064..acb18d1 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<float4> arg_0 : register(u0, space1);
void textureStore_331aee() {
arg_0[int3(0, 0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_331aee();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
index 1c6d255..d6ba273 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_331aee "textureStore_331aee"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v3int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_331aee = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_331aee = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_331aee
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_331aee
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_331aee
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_331aee
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_331aee
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.wgsl
index d1ed0c6..3d47b38 100644
--- a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_331aee();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl
index e6bb103..713b571 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_38e8d7();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
index 23abfe3..10ad900 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<uint4> arg_0 : register(u0, space1);
void textureStore_38e8d7() {
arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_38e8d7();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
index fd1b989..1a7da57 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 41
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_38e8d7 "textureStore_38e8d7"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,35 +32,47 @@
%7 = OpTypeImage %uint 2D 0 1 0 2 R32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4uint = OpTypeVector %uint 4
- %21 = OpConstantNull %v4uint
+ %25 = OpConstantNull %v4uint
+ %26 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_38e8d7 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %19 %21
+%textureStore_38e8d7 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %23 %25
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %23 = OpLabel
+%tint_symbol_2 = OpFunction %void None %26
+%tint_symbol = OpFunctionParameter %v4float
+ %29 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %31 = OpLabel
OpStore %tint_pointsize %float_1
- %25 = OpFunctionCall %void %textureStore_38e8d7
+ %33 = OpFunctionCall %void %textureStore_38e8d7
+ %34 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_38e8d7
+%fragment_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_38e8d7
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %30 = OpLabel
- %31 = OpFunctionCall %void %textureStore_38e8d7
+%compute_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_38e8d7
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.wgsl
index 50a53ca..f87ee3e 100644
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_38e8d7();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl
index c815964..30e16f0 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_3a52ac();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
index 1ccbf60..fa6c84b 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<int4> arg_0 : register(u0, space1);
void textureStore_3a52ac() {
arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_3a52ac();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
index c033a5b..04f98b5 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 40
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_3a52ac "textureStore_3a52ac"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,34 +32,46 @@
%7 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4int = OpTypeVector %int 4
- %20 = OpConstantNull %v4int
+ %24 = OpConstantNull %v4int
+ %25 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_3a52ac = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %18 %20
+%textureStore_3a52ac = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %22 %24
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %22 = OpLabel
+%tint_symbol_2 = OpFunction %void None %25
+%tint_symbol = OpFunctionParameter %v4float
+ %28 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %30 = OpLabel
OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_3a52ac
+ %32 = OpFunctionCall %void %textureStore_3a52ac
+ %33 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_3a52ac
+%fragment_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_3a52ac
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %29 = OpLabel
- %30 = OpFunctionCall %void %textureStore_3a52ac
+%compute_main = OpFunction %void None %13
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_3a52ac
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.wgsl
index 85d39aa..2eadd38 100644
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_3a52ac();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl
index 3ee4fd6..ce30a0c 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_3bb7a1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
index a8c5ece..1d0803d 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<float4> arg_0 : register(u0, space1);
void textureStore_3bb7a1() {
arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_3bb7a1();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
index 312d773..4c4f9d4 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_3bb7a1 "textureStore_3bb7a1"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,35 +31,45 @@
%7 = OpTypeImage %float 2D 0 1 0 2 R32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantNull %v4float
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_3bb7a1 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %18 %20
+%textureStore_3bb7a1 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %22 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %22 = OpLabel
- OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_3bb7a1
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_3bb7a1
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %29 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %28 = OpLabel
+ OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %textureStore_3bb7a1
+ %31 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_3bb7a1
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_3bb7a1
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.wgsl
index 87ece03..3171def 100644
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_3bb7a1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl b/test/intrinsics/gen/textureStore/3bec15.wgsl
index aad435e..3493941 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_3bec15();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.hlsl
index cfcedd9..9dc0ea8 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<uint4> arg_0 : register(u0, space1);
void textureStore_3bec15() {
arg_0[1] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_3bec15();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
index 5a80a9d..fcd3c0c 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_3bec15 "textureStore_3bec15"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,44 @@
%7 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%v4uint = OpTypeVector %uint 4
- %18 = OpConstantNull %v4uint
+ %22 = OpConstantNull %v4uint
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_3bec15 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %18
+%textureStore_3bec15 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_3bec15
+ %30 = OpFunctionCall %void %textureStore_3bec15
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_3bec15
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_3bec15
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_3bec15
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_3bec15
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.wgsl
index 2cadcbe..be5532b 100644
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_3bec15();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl b/test/intrinsics/gen/textureStore/441ba8.wgsl
index 5846c1c..212fdf2 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_441ba8();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.hlsl
index c980a0e..9065ca8 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<uint4> arg_0 : register(u0, space1);
void textureStore_441ba8() {
arg_0[int3(0, 0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_441ba8();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
index 40cc744..68e35fc 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_441ba8 "textureStore_441ba8"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %17 = OpConstantNull %v3int
+ %21 = OpConstantNull %v3int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_441ba8 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_441ba8 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_441ba8
+ %31 = OpFunctionCall %void %textureStore_441ba8
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_441ba8
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_441ba8
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_441ba8
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_441ba8
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.wgsl
index ac7be08..6b61a49 100644
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_441ba8();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl b/test/intrinsics/gen/textureStore/4fc057.wgsl
index cc41511..b7a154f 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_4fc057();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
index d7021c1..d8ecd13 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<float4> arg_0 : register(u0, space1);
void textureStore_4fc057() {
arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_4fc057();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
index 53d44de..bc26ddc 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_4fc057 "textureStore_4fc057"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,35 +31,45 @@
%7 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantNull %v4float
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_4fc057 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %18 %20
+%textureStore_4fc057 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %22 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %22 = OpLabel
- OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_4fc057
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_4fc057
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %29 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %28 = OpLabel
+ OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %textureStore_4fc057
+ %31 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_4fc057
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_4fc057
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.wgsl
index 1a909f8..4c0fd68 100644
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_4fc057();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl
index 063eecc..ae4c491 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_5a2f8f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.hlsl
index 88412b5..498961a 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<int4> arg_0 : register(u0, space1);
void textureStore_5a2f8f() {
arg_0[1] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_5a2f8f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
index 269e38c..fb58460 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_5a2f8f "textureStore_5a2f8f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,31 +33,43 @@
%7 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int_1 = OpConstant %int 1
%v4int = OpTypeVector %int 4
- %17 = OpConstantNull %v4int
+ %21 = OpConstantNull %v4int
+ %22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_5a2f8f = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %17
+%textureStore_5a2f8f = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %21
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %19 = OpLabel
+%tint_symbol_2 = OpFunction %void None %22
+%tint_symbol = OpFunctionParameter %v4float
+ %25 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %27 = OpLabel
OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_5a2f8f
+ %29 = OpFunctionCall %void %textureStore_5a2f8f
+ %30 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_5a2f8f
+%fragment_main = OpFunction %void None %13
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_5a2f8f
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_5a2f8f
+%compute_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_5a2f8f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.wgsl
index 3053085..adeefea 100644
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_5a2f8f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl b/test/intrinsics/gen/textureStore/60975f.wgsl
index 5500737..3aec6444 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_60975f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
index e26e62a..0dcc532 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<float4> arg_0 : register(u0, space1);
void textureStore_60975f() {
arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_60975f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
index 2336b53..c05e714 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_60975f "textureStore_60975f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,35 +31,45 @@
%7 = OpTypeImage %float 2D 0 1 0 2 Rgba8
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantNull %v4float
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_60975f = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %18 %20
+%textureStore_60975f = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %22 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %22 = OpLabel
- OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_60975f
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_60975f
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %29 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %28 = OpLabel
+ OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %textureStore_60975f
+ %31 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_60975f
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_60975f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.wgsl
index c7689fc..2391366 100644
--- a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_60975f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl b/test/intrinsics/gen/textureStore/682fd6.wgsl
index ec1f1ae..3aae9c4 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_682fd6();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.hlsl
index 3a8b9d0..0dced90 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<uint4> arg_0 : register(u0, space1);
void textureStore_682fd6() {
arg_0[int2(0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_682fd6();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
index 646031d..6ba0216 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_682fd6 "textureStore_682fd6"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,33 +33,45 @@
%7 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %17 = OpConstantNull %v2int
+ %21 = OpConstantNull %v2int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_682fd6 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_682fd6 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_682fd6
+ %31 = OpFunctionCall %void %textureStore_682fd6
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_682fd6
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_682fd6
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_682fd6
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_682fd6
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.wgsl
index 0bfa046..7dcc695 100644
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_682fd6();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl
index 187bba1..84367ba 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6b75c3();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.hlsl
index 677e584..c561e4c 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<float4> arg_0 : register(u0, space1);
void textureStore_6b75c3() {
arg_0[1] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_6b75c3();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
index 51ee16a..d373c99 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_6b75c3 "textureStore_6b75c3"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_6b75c3 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_6b75c3 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_6b75c3
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_6b75c3
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_6b75c3
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_6b75c3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_6b75c3
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.wgsl
index 54e64b0..6ed15c6 100644
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6b75c3();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl
index cfded42..df54e40 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6b80d2();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.hlsl
index eac402e..57de36d 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<int4> arg_0 : register(u0, space1);
void textureStore_6b80d2() {
arg_0[1] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_6b80d2();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
index 2ec370c..87ed017 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_6b80d2 "textureStore_6b80d2"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,31 +33,43 @@
%7 = OpTypeImage %int 1D 0 0 0 2 R32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int_1 = OpConstant %int 1
%v4int = OpTypeVector %int 4
- %17 = OpConstantNull %v4int
+ %21 = OpConstantNull %v4int
+ %22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_6b80d2 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %17
+%textureStore_6b80d2 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %21
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %19 = OpLabel
+%tint_symbol_2 = OpFunction %void None %22
+%tint_symbol = OpFunctionParameter %v4float
+ %25 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %27 = OpLabel
OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_6b80d2
+ %29 = OpFunctionCall %void %textureStore_6b80d2
+ %30 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_6b80d2
+%fragment_main = OpFunction %void None %13
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_6b80d2
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_6b80d2
+%compute_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_6b80d2
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.wgsl
index 6ab7b61..6e06e4f 100644
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6b80d2();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl
index 987f5fe..cf3b83a 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6cff2e();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.hlsl
index e149a2a..90f7d83 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<uint4> arg_0 : register(u0, space1);
void textureStore_6cff2e() {
arg_0[int2(0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_6cff2e();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
index 83a83e7..30fbe9b 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_6cff2e "textureStore_6cff2e"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 2D 0 0 0 2 R32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %17 = OpConstantNull %v2int
+ %21 = OpConstantNull %v2int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_6cff2e = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_6cff2e = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_6cff2e
+ %31 = OpFunctionCall %void %textureStore_6cff2e
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_6cff2e
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_6cff2e
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_6cff2e
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_6cff2e
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.wgsl
index 85ea47f9..900cfea 100644
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6cff2e();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl b/test/intrinsics/gen/textureStore/6da692.wgsl
index e811e01..36f45e7 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6da692();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
index 716225b..19a1b5f 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<uint4> arg_0 : register(u0, space1);
void textureStore_6da692() {
arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_6da692();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
index 6f6bf71..6fd25b4 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 41
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_6da692 "textureStore_6da692"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,35 +32,47 @@
%7 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4uint = OpTypeVector %uint 4
- %21 = OpConstantNull %v4uint
+ %25 = OpConstantNull %v4uint
+ %26 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_6da692 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %19 %21
+%textureStore_6da692 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %23 %25
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %23 = OpLabel
+%tint_symbol_2 = OpFunction %void None %26
+%tint_symbol = OpFunctionParameter %v4float
+ %29 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %31 = OpLabel
OpStore %tint_pointsize %float_1
- %25 = OpFunctionCall %void %textureStore_6da692
+ %33 = OpFunctionCall %void %textureStore_6da692
+ %34 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_6da692
+%fragment_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_6da692
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %30 = OpLabel
- %31 = OpFunctionCall %void %textureStore_6da692
+%compute_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_6da692
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.wgsl
index da17065..eec8577 100644
--- a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_6da692();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl b/test/intrinsics/gen/textureStore/731349.wgsl
index ad47ce9..1cf802a 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl
+++ b/test/intrinsics/gen/textureStore/731349.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_731349();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/731349.wgsl.expected.hlsl
index c6530ca..3a80494 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<float4> arg_0 : register(u0, space1);
void textureStore_731349() {
arg_0[int2(0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_731349();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
index 577af62..58b625f 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_731349 "textureStore_731349"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 2D 0 0 0 2 Rgba8
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v2int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_731349 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_731349 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_731349
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_731349
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_731349
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_731349
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_731349
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/731349.wgsl.expected.wgsl
index 5b527d8..3dc131c 100644
--- a/test/intrinsics/gen/textureStore/731349.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_731349();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl b/test/intrinsics/gen/textureStore/752da6.wgsl
index 4424bb3..8f50b09 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_752da6();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.hlsl
index 60c15a1..3ab3bcc 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<int4> arg_0 : register(u0, space1);
void textureStore_752da6() {
arg_0[int2(0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_752da6();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
index 4219376..6aa38f4 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_752da6 "textureStore_752da6"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
+ %20 = OpConstantNull %v2int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_752da6 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_752da6 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_752da6
+ %30 = OpFunctionCall %void %textureStore_752da6
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_752da6
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_752da6
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_752da6
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_752da6
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.wgsl
index 2348d36..8f5dfb6 100644
--- a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_752da6();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl
index bce5f33..ef9f8ed 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_77c0ae();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.hlsl
index 9705f28..29ed738 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<uint4> arg_0 : register(u0, space1);
void textureStore_77c0ae() {
arg_0[int2(0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_77c0ae();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
index 7434c65..22b93d4 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_77c0ae "textureStore_77c0ae"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %17 = OpConstantNull %v2int
+ %21 = OpConstantNull %v2int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_77c0ae = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_77c0ae = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_77c0ae
+ %31 = OpFunctionCall %void %textureStore_77c0ae
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_77c0ae
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_77c0ae
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_77c0ae
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_77c0ae
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.wgsl
index 8ff941a..434cae5 100644
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_77c0ae();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl
index 7bf0a3b..4399d59 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_7cec8d();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
index 2068667..51ffaac 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<int4> arg_0 : register(u0, space1);
void textureStore_7cec8d() {
arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_7cec8d();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
index 359d905..47d10a8 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 40
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_7cec8d "textureStore_7cec8d"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,34 +32,46 @@
%7 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4int = OpTypeVector %int 4
- %20 = OpConstantNull %v4int
+ %24 = OpConstantNull %v4int
+ %25 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_7cec8d = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %18 %20
+%textureStore_7cec8d = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %22 %24
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %22 = OpLabel
+%tint_symbol_2 = OpFunction %void None %25
+%tint_symbol = OpFunctionParameter %v4float
+ %28 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %30 = OpLabel
OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_7cec8d
+ %32 = OpFunctionCall %void %textureStore_7cec8d
+ %33 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_7cec8d
+%fragment_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_7cec8d
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %29 = OpLabel
- %30 = OpFunctionCall %void %textureStore_7cec8d
+%compute_main = OpFunction %void None %13
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_7cec8d
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.wgsl
index 3ba2f7f..420fd1c 100644
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_7cec8d();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl
index 203a4a5..de0b3e9 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_7f7fae();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.hlsl
index 0242359..1da528f 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<float4> arg_0 : register(u0, space1);
void textureStore_7f7fae() {
arg_0[1] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_7f7fae();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
index 6adb368..d8b70fe 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_7f7fae "textureStore_7f7fae"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 Rgba8
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_7f7fae = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_7f7fae = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_7f7fae
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_7f7fae
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_7f7fae
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_7f7fae
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_7f7fae
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.wgsl
index e8ec3ee..d0bd9f3 100644
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_7f7fae();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl b/test/intrinsics/gen/textureStore/804942.wgsl
index a27738f..44ae89d 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl
+++ b/test/intrinsics/gen/textureStore/804942.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_804942();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/804942.wgsl.expected.hlsl
index 226ade1..b835e33 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<int4> arg_0 : register(u0, space1);
void textureStore_804942() {
arg_0[int2(0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_804942();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
index 2a1b747..f7b77bb 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_804942 "textureStore_804942"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 2D 0 0 0 2 R32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
+ %20 = OpConstantNull %v2int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_804942 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_804942 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_804942
+ %30 = OpFunctionCall %void %textureStore_804942
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_804942
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_804942
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_804942
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_804942
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/804942.wgsl.expected.wgsl
index ed39788..3306d47 100644
--- a/test/intrinsics/gen/textureStore/804942.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_804942();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl b/test/intrinsics/gen/textureStore/805dae.wgsl
index 427a6a2..45c740a 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_805dae();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.hlsl
index 1556ee1..fee8e1b 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<float4> arg_0 : register(u0, space1);
void textureStore_805dae() {
arg_0[int2(0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_805dae();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
index bdb0957..6a2d386 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_805dae "textureStore_805dae"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v2int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_805dae = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_805dae = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_805dae
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_805dae
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_805dae
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_805dae
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_805dae
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.wgsl
index 8fd5751..2e0e003 100644
--- a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_805dae();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl
index c951df7..a8951d1 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_83bcc1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.hlsl
index c03732f..bb4b8eb 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<uint4> arg_0 : register(u0, space1);
void textureStore_83bcc1() {
arg_0[1] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_83bcc1();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
index ddd4726..7165fd8 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
@@ -1,20 +1,23 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_83bcc1 "textureStore_83bcc1"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -22,6 +25,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -30,32 +34,44 @@
%7 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%v4uint = OpTypeVector %uint 4
- %18 = OpConstantNull %v4uint
+ %22 = OpConstantNull %v4uint
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_83bcc1 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %18
+%textureStore_83bcc1 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_83bcc1
+ %30 = OpFunctionCall %void %textureStore_83bcc1
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_83bcc1
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_83bcc1
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_83bcc1
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_83bcc1
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.wgsl
index 6a2ee41..7659600 100644
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_83bcc1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl b/test/intrinsics/gen/textureStore/872747.wgsl
index f379316..840b126 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl
+++ b/test/intrinsics/gen/textureStore/872747.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_872747();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/872747.wgsl.expected.hlsl
index 26076b1f..e00dfbd 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<float4> arg_0 : register(u0, space1);
void textureStore_872747() {
arg_0[1] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_872747();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
index 1a704f6..a6fa3f3 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
@@ -1,20 +1,23 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_872747 "textureStore_872747"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -22,6 +25,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 Rg32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_872747 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_872747 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_872747
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_872747
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_872747
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_872747
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_872747
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/872747.wgsl.expected.wgsl
index ff7a941..084d473 100644
--- a/test/intrinsics/gen/textureStore/872747.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_872747();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl b/test/intrinsics/gen/textureStore/8e0479.wgsl
index 9420a69..75dce21 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_8e0479();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
index b9dc391..ca6ebdc 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<uint4> arg_0 : register(u0, space1);
void textureStore_8e0479() {
arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_8e0479();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
index b8b2544..5db1630 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 41
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_8e0479 "textureStore_8e0479"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,35 +32,47 @@
%7 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4uint = OpTypeVector %uint 4
- %21 = OpConstantNull %v4uint
+ %25 = OpConstantNull %v4uint
+ %26 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_8e0479 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %19 %21
+%textureStore_8e0479 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %23 %25
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %23 = OpLabel
+%tint_symbol_2 = OpFunction %void None %26
+%tint_symbol = OpFunctionParameter %v4float
+ %29 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %31 = OpLabel
OpStore %tint_pointsize %float_1
- %25 = OpFunctionCall %void %textureStore_8e0479
+ %33 = OpFunctionCall %void %textureStore_8e0479
+ %34 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_8e0479
+%fragment_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_8e0479
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %30 = OpLabel
- %31 = OpFunctionCall %void %textureStore_8e0479
+%compute_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_8e0479
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.wgsl
index 5dcee17..f390e47 100644
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_8e0479();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl
index 268f13b..1b56276 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_8f71a1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.hlsl
index 1a241c9..614cc38 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<int4> arg_0 : register(u0, space1);
void textureStore_8f71a1() {
arg_0[int3(0, 0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_8f71a1();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
index 1cf5015..4380aac 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_8f71a1 "textureStore_8f71a1"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
+ %20 = OpConstantNull %v3int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_8f71a1 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_8f71a1 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_8f71a1
+ %30 = OpFunctionCall %void %textureStore_8f71a1
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_8f71a1
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_8f71a1
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_8f71a1
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_8f71a1
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.wgsl
index 1f64e85..a6df58a 100644
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_8f71a1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl b/test/intrinsics/gen/textureStore/969534.wgsl
index f80fdf4..158f0b5 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl
+++ b/test/intrinsics/gen/textureStore/969534.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_969534();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/969534.wgsl.expected.hlsl
index 974bcd9..9b94d3f 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<int4> arg_0 : register(u0, space1);
void textureStore_969534() {
arg_0[1] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_969534();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
index 0d2b25b..bd8a1cc 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_969534 "textureStore_969534"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,31 +33,43 @@
%7 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int_1 = OpConstant %int 1
%v4int = OpTypeVector %int 4
- %17 = OpConstantNull %v4int
+ %21 = OpConstantNull %v4int
+ %22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_969534 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %17
+%textureStore_969534 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %21
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %19 = OpLabel
+%tint_symbol_2 = OpFunction %void None %22
+%tint_symbol = OpFunctionParameter %v4float
+ %25 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %27 = OpLabel
OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_969534
+ %29 = OpFunctionCall %void %textureStore_969534
+ %30 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_969534
+%fragment_main = OpFunction %void None %13
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_969534
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_969534
+%compute_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_969534
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/969534.wgsl.expected.wgsl
index 53e571f..bda2165 100644
--- a/test/intrinsics/gen/textureStore/969534.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_969534();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl
index 3ba13a4..0d73175 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_9a3ecc();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.hlsl
index 7252b71..2d6881c 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<int4> arg_0 : register(u0, space1);
void textureStore_9a3ecc() {
arg_0[int3(0, 0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_9a3ecc();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
index 16257e8..65be593 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_9a3ecc "textureStore_9a3ecc"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
+ %20 = OpConstantNull %v3int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_9a3ecc = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_9a3ecc = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_9a3ecc
+ %30 = OpFunctionCall %void %textureStore_9a3ecc
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_9a3ecc
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_9a3ecc
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_9a3ecc
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_9a3ecc
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.wgsl
index 727c546..1b3385b 100644
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_9a3ecc();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl
index 4f2a3f3..02eb723 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_9d9cd5();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
index 8c4350d..43971ad 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<float4> arg_0 : register(u0, space1);
void textureStore_9d9cd5() {
arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_9d9cd5();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
index a719ffe..52c2c66 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_9d9cd5 "textureStore_9d9cd5"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,35 +31,45 @@
%7 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantNull %v4float
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_9d9cd5 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %18 %20
+%textureStore_9d9cd5 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %22 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %22 = OpLabel
- OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_9d9cd5
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_9d9cd5
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %29 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %28 = OpLabel
+ OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %textureStore_9d9cd5
+ %31 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_9d9cd5
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_9d9cd5
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.wgsl
index 6152a0c..ca75315 100644
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_9d9cd5();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl
index 4e4d687..6a69442 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_9e3ec5();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.hlsl
index 99edc0a..310f67b 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<int4> arg_0 : register(u0, space1);
void textureStore_9e3ec5() {
arg_0[int2(0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_9e3ec5();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
index d9595b1..660a80b 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_9e3ec5 "textureStore_9e3ec5"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
+ %20 = OpConstantNull %v2int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_9e3ec5 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_9e3ec5 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_9e3ec5
+ %30 = OpFunctionCall %void %textureStore_9e3ec5
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_9e3ec5
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_9e3ec5
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_9e3ec5
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_9e3ec5
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.wgsl
index c098780..97220bf 100644
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_9e3ec5();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl
index e0a32bd..5e91609 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_ac67aa();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.hlsl
index f888070..7185f53 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<uint4> arg_0 : register(u0, space1);
void textureStore_ac67aa() {
arg_0[int3(0, 0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_ac67aa();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
index 9df59a8..2df2253 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_ac67aa "textureStore_ac67aa"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,33 +33,45 @@
%7 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %17 = OpConstantNull %v3int
+ %21 = OpConstantNull %v3int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_ac67aa = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_ac67aa = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_ac67aa
+ %31 = OpFunctionCall %void %textureStore_ac67aa
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_ac67aa
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_ac67aa
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_ac67aa
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_ac67aa
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.wgsl
index ebf8cc5..f649c8b 100644
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_ac67aa();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl b/test/intrinsics/gen/textureStore/b706b1.wgsl
index 59b894f..b95081a 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_b706b1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.hlsl
index 6c9a134..5ec0692 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<int4> arg_0 : register(u0, space1);
void textureStore_b706b1() {
arg_0[int3(0, 0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_b706b1();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
index b46f7cb..e8ce299 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_b706b1 "textureStore_b706b1"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
+ %20 = OpConstantNull %v3int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_b706b1 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_b706b1 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_b706b1
+ %30 = OpFunctionCall %void %textureStore_b706b1
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_b706b1
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_b706b1
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_b706b1
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_b706b1
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.wgsl
index 6f717da..d5a48e5 100644
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_b706b1();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl
index e7b41fb..efad163 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_bbcb7f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.hlsl
index df0868c..95ca423 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<int4> arg_0 : register(u0, space1);
void textureStore_bbcb7f() {
arg_0[int2(0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_bbcb7f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
index 56000e5..488c2b5 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_bbcb7f "textureStore_bbcb7f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
+ %20 = OpConstantNull %v2int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_bbcb7f = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_bbcb7f = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_bbcb7f
+ %30 = OpFunctionCall %void %textureStore_bbcb7f
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_bbcb7f
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_bbcb7f
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_bbcb7f
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_bbcb7f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.wgsl
index af697b0..4c83b97 100644
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_bbcb7f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl b/test/intrinsics/gen/textureStore/be6e30.wgsl
index 6e1aeb9..c642eed 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_be6e30();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.hlsl
index 4918e06..33fc182 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2D<float4> arg_0 : register(u0, space1);
void textureStore_be6e30() {
arg_0[int2(0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_be6e30();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
index ecf44b0..0ad6a57 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_be6e30 "textureStore_be6e30"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %16 = OpConstantNull %v2int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v2int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_be6e30 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_be6e30 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_be6e30
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_be6e30
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_be6e30
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_be6e30
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_be6e30
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.wgsl
index 1bd8d78..cf60e0d 100644
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_be6e30();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl b/test/intrinsics/gen/textureStore/bf775c.wgsl
index 62c7939..8314743 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_bf775c();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.hlsl
index 09c1673..5714afa 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<int4> arg_0 : register(u0, space1);
void textureStore_bf775c() {
arg_0[1] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_bf775c();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
index 8c196e4..ad9491a 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_bf775c "textureStore_bf775c"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,31 +33,43 @@
%7 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int_1 = OpConstant %int 1
%v4int = OpTypeVector %int 4
- %17 = OpConstantNull %v4int
+ %21 = OpConstantNull %v4int
+ %22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_bf775c = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %17
+%textureStore_bf775c = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %21
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %19 = OpLabel
+%tint_symbol_2 = OpFunction %void None %22
+%tint_symbol = OpFunctionParameter %v4float
+ %25 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %27 = OpLabel
OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_bf775c
+ %29 = OpFunctionCall %void %textureStore_bf775c
+ %30 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_bf775c
+%fragment_main = OpFunction %void None %13
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_bf775c
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_bf775c
+%compute_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_bf775c
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.wgsl
index cc479d1..08ff4cb 100644
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_bf775c();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl
index 3cb1ba0..53fa500 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_c5af1e();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.hlsl
index fb29261..2f08e13 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<float4> arg_0 : register(u0, space1);
void textureStore_c5af1e() {
arg_0[int3(0, 0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_c5af1e();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
index fbd7f69..88bfeb1 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_c5af1e "textureStore_c5af1e"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v3int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_c5af1e = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_c5af1e = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_c5af1e
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_c5af1e
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_c5af1e
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_c5af1e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_c5af1e
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.wgsl
index b973b75..671eef0 100644
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_c5af1e();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl b/test/intrinsics/gen/textureStore/c863be.wgsl
index e4607bb..2dfd759 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_c863be();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
index 1301b87..e330dce 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<float4> arg_0 : register(u0, space1);
void textureStore_c863be() {
arg_0[int3(0, 0, 1)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_c863be();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
index 2efc16e..e93580e 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_c863be "textureStore_c863be"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,35 +32,45 @@
%7 = OpTypeImage %float 2D 0 1 0 2 Rg32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantNull %v4float
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_c863be = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %18 %20
+%textureStore_c863be = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %22 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %22 = OpLabel
- OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_c863be
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
%26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_c863be
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %29 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %28 = OpLabel
+ OpStore %tint_pointsize %float_1
%30 = OpFunctionCall %void %textureStore_c863be
+ %31 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_c863be
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_c863be
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.wgsl
index 849df74..f5d4ab3 100644
--- a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_c863be();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl
index a290200..04f8476 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_d73b5c();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.hlsl
index a550f78..bddb309 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<int4> arg_0 : register(u0, space1);
void textureStore_d73b5c() {
arg_0[1] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_d73b5c();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
index 9bd7a5c..d9b7315 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
@@ -1,20 +1,23 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_d73b5c "textureStore_d73b5c"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -22,6 +25,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -30,31 +34,43 @@
%7 = OpTypeImage %int 1D 0 0 0 2 Rg32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int_1 = OpConstant %int 1
%v4int = OpTypeVector %int 4
- %17 = OpConstantNull %v4int
+ %21 = OpConstantNull %v4int
+ %22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_d73b5c = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %17
+%textureStore_d73b5c = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %21
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %19 = OpLabel
+%tint_symbol_2 = OpFunction %void None %22
+%tint_symbol = OpFunctionParameter %v4float
+ %25 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %27 = OpLabel
OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_d73b5c
+ %29 = OpFunctionCall %void %textureStore_d73b5c
+ %30 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_d73b5c
+%fragment_main = OpFunction %void None %13
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_d73b5c
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_d73b5c
+%compute_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_d73b5c
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.wgsl
index 1966313..13b3190 100644
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_d73b5c();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl
index e4ee1e4..4b89356 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_dd7d81();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.hlsl
index b47a495..bb35e13 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<float4> arg_0 : register(u0, space1);
void textureStore_dd7d81() {
arg_0[int3(0, 0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_dd7d81();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
index c3658e7..7dacd3f 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_dd7d81 "textureStore_dd7d81"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v3int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_dd7d81 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_dd7d81 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_dd7d81
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_dd7d81
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_dd7d81
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_dd7d81
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_dd7d81
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.wgsl
index 7f448d4..487e054 100644
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_dd7d81();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl b/test/intrinsics/gen/textureStore/dde364.wgsl
index 39d1eda..2351bf9 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_dde364();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
index cd99618..6f41e23 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<uint4> arg_0 : register(u0, space1);
void textureStore_dde364() {
arg_0[int3(0, 0, 1)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_dde364();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
index 847c8f1..918c322 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 41
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_dde364 "textureStore_dde364"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,35 +33,47 @@
%7 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %19 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4uint = OpTypeVector %uint 4
- %21 = OpConstantNull %v4uint
+ %25 = OpConstantNull %v4uint
+ %26 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_dde364 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %19 %21
+%textureStore_dde364 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %23 %25
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %23 = OpLabel
+%tint_symbol_2 = OpFunction %void None %26
+%tint_symbol = OpFunctionParameter %v4float
+ %29 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %31 = OpLabel
OpStore %tint_pointsize %float_1
- %25 = OpFunctionCall %void %textureStore_dde364
+ %33 = OpFunctionCall %void %textureStore_dde364
+ %34 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_dde364
+%fragment_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_dde364
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %30 = OpLabel
- %31 = OpFunctionCall %void %textureStore_dde364
+%compute_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_dde364
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.wgsl
index d03b488..ed94049 100644
--- a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_dde364();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl b/test/intrinsics/gen/textureStore/e885e8.wgsl
index 013bd3a..333af95 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_e885e8();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.hlsl
index 110b1fd..8aa9d4c 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<float4> arg_0 : register(u0, space1);
void textureStore_e885e8() {
arg_0[1] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_e885e8();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
index 0f1837d..db9ea1d 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_e885e8 "textureStore_e885e8"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_e885e8 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_e885e8 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_e885e8
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_e885e8
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_e885e8
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_e885e8
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_e885e8
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.wgsl
index e4feafb..53888d3 100644
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_e885e8();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl b/test/intrinsics/gen/textureStore/eb702f.wgsl
index 040b104..ab19ba0 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_eb702f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.hlsl
index f2f1217..a65d22b 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<float4> arg_0 : register(u0, space1);
void textureStore_eb702f() {
arg_0[int3(0, 0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_eb702f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
index 805163c..a33b490 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_eb702f "textureStore_eb702f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -27,33 +31,43 @@
%7 = OpTypeImage %float 3D 0 0 0 2 R32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v3int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_eb702f = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_eb702f = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_eb702f
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_eb702f
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_eb702f
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_eb702f
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_eb702f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.wgsl
index de86b76..5cf2b13 100644
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_eb702f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl
index 4aa20046..c19b499 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_eb78b9();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.hlsl
index 8a2ccfd..859588a 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<int4> arg_0 : register(u0, space1);
void textureStore_eb78b9() {
arg_0[int3(0, 0, 0)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_eb78b9();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
index 2ff5b98..fec7f88 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_eb78b9 "textureStore_eb78b9"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,44 @@
%7 = OpTypeImage %int 3D 0 0 0 2 R32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
+ %20 = OpConstantNull %v3int
%v4int = OpTypeVector %int 4
- %18 = OpConstantNull %v4int
+ %22 = OpConstantNull %v4int
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_eb78b9 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %16 %18
+%textureStore_eb78b9 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %20 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_eb78b9
+ %30 = OpFunctionCall %void %textureStore_eb78b9
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_eb78b9
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_eb78b9
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_eb78b9
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_eb78b9
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.wgsl
index eb76666..31287b9 100644
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_eb78b9();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl
index a1a7801..223158c 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_ee6acc();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.hlsl
index a321851..2560aac 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<float4> arg_0 : register(u0, space1);
void textureStore_ee6acc() {
arg_0[int3(0, 0, 0)] = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_ee6acc();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
index f11aa5c..5a8e520 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 36
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_ee6acc "textureStore_ee6acc"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,43 @@
%7 = OpTypeImage %float 3D 0 0 0 2 Rg32f
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %16 = OpConstantNull %v3int
- %v4float = OpTypeVector %float 4
- %18 = OpConstantNull %v4float
+ %20 = OpConstantNull %v3int
+ %21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_ee6acc = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %16 %18
+%textureStore_ee6acc = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %20 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %20 = OpLabel
- OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_ee6acc
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %21
+%tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_ee6acc
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %27 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %26 = OpLabel
+ OpStore %tint_pointsize %float_1
%28 = OpFunctionCall %void %textureStore_ee6acc
+ %29 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_ee6acc
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_ee6acc
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.wgsl
index 3530be4..c68cc91 100644
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_ee6acc();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl
index 541ee39..e637049 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_ef9f2f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.hlsl
index 18e4e26..68cadd9 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<uint4> arg_0 : register(u0, space1);
void textureStore_ef9f2f() {
arg_0[int3(0, 0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_ef9f2f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
index 3d68722..0d35fe8 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_ef9f2f "textureStore_ef9f2f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 3D 0 0 0 2 R32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %17 = OpConstantNull %v3int
+ %21 = OpConstantNull %v3int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_ef9f2f = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_ef9f2f = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_ef9f2f
+ %31 = OpFunctionCall %void %textureStore_ef9f2f
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_ef9f2f
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_ef9f2f
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_ef9f2f
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_ef9f2f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.wgsl
index f2f20c1..e8bf5e0 100644
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_ef9f2f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl b/test/intrinsics/gen/textureStore/f8dead.wgsl
index dd8a4fb..6c316b6 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_f8dead();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.hlsl
index e6687d3..dc3b5d8 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture3D<uint4> arg_0 : register(u0, space1);
void textureStore_f8dead() {
arg_0[int3(0, 0, 0)] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_f8dead();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
index f421043..382a8c1 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 39
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_f8dead "textureStore_f8dead"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,33 +32,45 @@
%7 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3
- %17 = OpConstantNull %v3int
+ %21 = OpConstantNull %v3int
%v4uint = OpTypeVector %uint 4
- %19 = OpConstantNull %v4uint
+ %23 = OpConstantNull %v4uint
+ %24 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_f8dead = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %17 %19
+%textureStore_f8dead = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %21 %23
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %21 = OpLabel
+%tint_symbol_2 = OpFunction %void None %24
+%tint_symbol = OpFunctionParameter %v4float
+ %27 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %29 = OpLabel
OpStore %tint_pointsize %float_1
- %23 = OpFunctionCall %void %textureStore_f8dead
+ %31 = OpFunctionCall %void %textureStore_f8dead
+ %32 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %25 = OpLabel
- %26 = OpFunctionCall %void %textureStore_f8dead
+%fragment_main = OpFunction %void None %13
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_f8dead
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %28 = OpLabel
- %29 = OpFunctionCall %void %textureStore_f8dead
+%compute_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_f8dead
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.wgsl
index 184af58..8f23e0c 100644
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_f8dead();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl b/test/intrinsics/gen/textureStore/f9be83.wgsl
index 07e21f9..9ecba96 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_f9be83();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
index f4b305b..b671f34 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<int4> arg_0 : register(u0, space1);
void textureStore_f9be83() {
arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_f9be83();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
index 08795cd..af3adfc 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 40
; Schema: 0
OpCapability Shader
OpCapability StorageImageExtendedFormats
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_f9be83 "textureStore_f9be83"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,34 +33,46 @@
%7 = OpTypeImage %int 2D 0 1 0 2 Rg32i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4int = OpTypeVector %int 4
- %20 = OpConstantNull %v4int
+ %24 = OpConstantNull %v4int
+ %25 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_f9be83 = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %18 %20
+%textureStore_f9be83 = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %22 %24
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %22 = OpLabel
+%tint_symbol_2 = OpFunction %void None %25
+%tint_symbol = OpFunctionParameter %v4float
+ %28 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %30 = OpLabel
OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_f9be83
+ %32 = OpFunctionCall %void %textureStore_f9be83
+ %33 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_f9be83
+%fragment_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_f9be83
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %29 = OpLabel
- %30 = OpFunctionCall %void %textureStore_f9be83
+%compute_main = OpFunction %void None %13
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_f9be83
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.wgsl
index bdc6309..efbe0fe 100644
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_f9be83();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl
index 13a6929..68e71bb 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_fb9a8f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.hlsl
index 605ed73..b2a2834 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture1D<uint4> arg_0 : register(u0, space1);
void textureStore_fb9a8f() {
arg_0[1] = uint4(0u, 0u, 0u, 0u);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_fb9a8f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
index 32c9ecb..414eb1c 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 38
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_fb9a8f "textureStore_fb9a8f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -29,32 +33,44 @@
%7 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%v4uint = OpTypeVector %uint 4
- %18 = OpConstantNull %v4uint
+ %22 = OpConstantNull %v4uint
+ %23 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_fb9a8f = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %int_1 %18
+%textureStore_fb9a8f = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %int_1 %22
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %20 = OpLabel
+%tint_symbol_2 = OpFunction %void None %23
+%tint_symbol = OpFunctionParameter %v4float
+ %26 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %28 = OpLabel
OpStore %tint_pointsize %float_1
- %22 = OpFunctionCall %void %textureStore_fb9a8f
+ %30 = OpFunctionCall %void %textureStore_fb9a8f
+ %31 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %24 = OpLabel
- %25 = OpFunctionCall %void %textureStore_fb9a8f
+%fragment_main = OpFunction %void None %13
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_fb9a8f
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %27 = OpLabel
- %28 = OpFunctionCall %void %textureStore_fb9a8f
+%compute_main = OpFunction %void None %13
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_fb9a8f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.wgsl
index f22a569..78ac35d 100644
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_fb9a8f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl
index eac93e4..a5d4ca6 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl
@@ -28,8 +28,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_fbf53f();
+ return vec4<f32>();
}
[[stage(fragment)]]
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
index 174ca73..32afd0d 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
@@ -1,12 +1,17 @@
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
RWTexture2DArray<int4> arg_0 : register(u0, space1);
void textureStore_fbf53f() {
arg_0[int3(0, 0, 1)] = int4(0, 0, 0, 0);
}
-void vertex_main() {
+tint_symbol vertex_main() {
textureStore_fbf53f();
- return;
+ const tint_symbol tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
+ return tint_symbol_1;
}
void fragment_main() {
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
index 7f56ec3..3ac4b4d 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
@@ -1,18 +1,21 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 40
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_fbf53f "textureStore_fbf53f"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -20,6 +23,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,34 +32,46 @@
%7 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %12 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
- %9 = OpTypeFunction %void
+ %13 = OpTypeFunction %void
%v3int = OpTypeVector %int 3
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
- %18 = OpConstantComposite %v3int %int_0 %int_0 %int_1
+ %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
%v4int = OpTypeVector %int 4
- %20 = OpConstantNull %v4int
+ %24 = OpConstantNull %v4int
+ %25 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_fbf53f = OpFunction %void None %9
- %12 = OpLabel
- %14 = OpLoad %7 %arg_0
- OpImageWrite %14 %18 %20
+%textureStore_fbf53f = OpFunction %void None %13
+ %16 = OpLabel
+ %18 = OpLoad %7 %arg_0
+ OpImageWrite %18 %22 %24
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %9
- %22 = OpLabel
+%tint_symbol_2 = OpFunction %void None %25
+%tint_symbol = OpFunctionParameter %v4float
+ %28 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
+ OpReturn
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %30 = OpLabel
OpStore %tint_pointsize %float_1
- %24 = OpFunctionCall %void %textureStore_fbf53f
+ %32 = OpFunctionCall %void %textureStore_fbf53f
+ %33 = OpFunctionCall %void %tint_symbol_2 %12
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %9
- %26 = OpLabel
- %27 = OpFunctionCall %void %textureStore_fbf53f
+%fragment_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %void %textureStore_fbf53f
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %9
- %29 = OpLabel
- %30 = OpFunctionCall %void %textureStore_fbf53f
+%compute_main = OpFunction %void None %13
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_fbf53f
OpReturn
OpFunctionEnd
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.wgsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.wgsl
index b19b0a4..18f0471 100644
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.wgsl
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.wgsl
@@ -5,8 +5,9 @@
}
[[stage(vertex)]]
-fn vertex_main() {
+fn vertex_main() -> [[builtin(position)]] vec4<f32> {
textureStore_fbf53f();
+ return vec4<f32>();
}
[[stage(fragment)]]