tint/hlsl+glsl: fix workgroupUniformLoad polyfills
The BuiltinPolyfill transform expects the DirectVariableAccess transform
to run after it, but this regressed as part of
https://dawn-review.googlesource.com/c/dawn/+/122203
Add unit test along with e2e 1926.wgsl test.
Bug: tint:1926
Change-Id: I5107453ce152b12e6f2f36930846e1fffa775708
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/131020
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/transform/builtin_polyfill_test.cc b/src/tint/transform/builtin_polyfill_test.cc
index 65c1f29..ad47af6 100644
--- a/src/tint/transform/builtin_polyfill_test.cc
+++ b/src/tint/transform/builtin_polyfill_test.cc
@@ -16,6 +16,7 @@
#include <utility>
+#include "src/tint/transform/direct_variable_access.h"
#include "src/tint/transform/test_helper.h"
namespace tint::transform {
@@ -3673,8 +3674,23 @@
DataMap polyfillWorkgroupUniformLoad() {
BuiltinPolyfill::Builtins builtins;
builtins.workgroup_uniform_load = true;
+
DataMap data;
data.Add<BuiltinPolyfill::Config>(builtins);
+
+ return data;
+}
+
+DataMap polyfillWorkgroupUniformLoadWithDirectVariableAccess() {
+ DataMap data;
+
+ BuiltinPolyfill::Builtins builtins;
+ builtins.workgroup_uniform_load = true;
+ data.Add<BuiltinPolyfill::Config>(builtins);
+
+ DirectVariableAccess::Options options;
+ data.Add<DirectVariableAccess::Config>(options);
+
return data;
}
@@ -3830,6 +3846,50 @@
EXPECT_EQ(expect, str(got));
}
+TEST_F(BuiltinPolyfillTest, WorkgroupUniformLoad_DirectVariableAccess) {
+ auto* src = R"(
+var<workgroup> v : i32;
+var<workgroup> v2 : i32;
+
+fn f() {
+ let r = workgroupUniformLoad(&v);
+ let s = workgroupUniformLoad(&v2);
+}
+)";
+
+ auto* expect = R"(
+enable chromium_experimental_full_ptr_parameters;
+
+fn tint_workgroupUniformLoad_v() -> i32 {
+ workgroupBarrier();
+ let result = v;
+ workgroupBarrier();
+ return result;
+}
+
+fn tint_workgroupUniformLoad_v2() -> i32 {
+ workgroupBarrier();
+ let result = v2;
+ workgroupBarrier();
+ return result;
+}
+
+var<workgroup> v : i32;
+
+var<workgroup> v2 : i32;
+
+fn f() {
+ let r = tint_workgroupUniformLoad_v();
+ let s = tint_workgroupUniformLoad_v2();
+}
+)";
+
+ auto got = Run<BuiltinPolyfill, DirectVariableAccess>(
+ src, polyfillWorkgroupUniformLoadWithDirectVariableAccess());
+
+ EXPECT_EQ(expect, str(got));
+}
+
////////////////////////////////////////////////////////////////////////////////
// quantizeToF16
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index 8fcdd3d..181bce8 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -170,7 +170,6 @@
manager.Add<transform::PreservePadding>(); // Must come before DirectVariableAccess
manager.Add<transform::Unshadow>(); // Must come before DirectVariableAccess
- manager.Add<transform::DirectVariableAccess>();
manager.Add<transform::PromoteSideEffectsToDecl>();
@@ -203,9 +202,11 @@
polyfills.texture_sample_base_clamp_to_edge_2d_f32 = true;
polyfills.workgroup_uniform_load = true;
data.Add<transform::BuiltinPolyfill::Config>(polyfills);
- manager.Add<transform::BuiltinPolyfill>();
+ manager.Add<transform::BuiltinPolyfill>(); // Must come before DirectVariableAccess
}
+ manager.Add<transform::DirectVariableAccess>();
+
if (!options.disable_workgroup_init) {
// ZeroInitWorkgroupMemory must come before CanonicalizeEntryPointIO as
// ZeroInitWorkgroupMemory may inject new builtin parameters.
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index ed86e9e..fefd424 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -176,8 +176,6 @@
manager.Add<transform::Unshadow>(); // Must come before DirectVariableAccess
- manager.Add<transform::DirectVariableAccess>();
-
// LocalizeStructArrayAssignment must come after:
// * SimplifyPointers, because it assumes assignment to arrays in structs are
// done directly, not indirectly.
@@ -229,9 +227,11 @@
polyfills.texture_sample_base_clamp_to_edge_2d_f32 = true;
polyfills.workgroup_uniform_load = true;
data.Add<transform::BuiltinPolyfill::Config>(polyfills);
- manager.Add<transform::BuiltinPolyfill>();
+ manager.Add<transform::BuiltinPolyfill>(); // Must come before DirectVariableAccess
}
+ manager.Add<transform::DirectVariableAccess>();
+
if (!options.disable_workgroup_init) {
// ZeroInitWorkgroupMemory must come before CanonicalizeEntryPointIO as
// ZeroInitWorkgroupMemory may inject new builtin parameters.
diff --git a/src/tint/writer/spirv/generator_impl.cc b/src/tint/writer/spirv/generator_impl.cc
index 80485c9..0a3f99f 100644
--- a/src/tint/writer/spirv/generator_impl.cc
+++ b/src/tint/writer/spirv/generator_impl.cc
@@ -119,7 +119,7 @@
polyfills.quantize_to_vec_f16 = true; // crbug.com/tint/1741
polyfills.workgroup_uniform_load = true;
data.Add<transform::BuiltinPolyfill::Config>(polyfills);
- manager.Add<transform::BuiltinPolyfill>();
+ manager.Add<transform::BuiltinPolyfill>(); // Must come before DirectVariableAccess
}
bool disable_workgroup_init_in_sanitizer =
diff --git a/test/tint/bug/tint/1926.wgsl b/test/tint/bug/tint/1926.wgsl
new file mode 100644
index 0000000..5e86097
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl
@@ -0,0 +1,16 @@
+var<workgroup> sh_atomic_failed: u32;
+
+@group(0) @binding(4)
+var<storage, read_write> output: u32;
+
+@compute @workgroup_size(256)
+fn main(
+ @builtin(global_invocation_id) global_id: vec3<u32>,
+ @builtin(local_invocation_id) local_id: vec3<u32>,
+) {
+ let failed = workgroupUniformLoad(&sh_atomic_failed);
+
+ if (local_id.x == 0) {
+ output = failed;
+ }
+}
diff --git a/test/tint/bug/tint/1926.wgsl.expected.dxc.hlsl b/test/tint/bug/tint/1926.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9367ce7
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+groupshared uint sh_atomic_failed;
+
+uint tint_workgroupUniformLoad_sh_atomic_failed() {
+ GroupMemoryBarrierWithGroupSync();
+ const uint result = sh_atomic_failed;
+ GroupMemoryBarrierWithGroupSync();
+ return result;
+}
+
+RWByteAddressBuffer output : register(u4);
+
+struct tint_symbol_1 {
+ uint3 local_id : SV_GroupThreadID;
+ uint local_invocation_index : SV_GroupIndex;
+ uint3 global_id : SV_DispatchThreadID;
+};
+
+void main_inner(uint3 global_id, uint3 local_id, uint local_invocation_index) {
+ if ((local_invocation_index < 1u)) {
+ sh_atomic_failed = 0u;
+ }
+ GroupMemoryBarrierWithGroupSync();
+ const uint failed = tint_workgroupUniformLoad_sh_atomic_failed();
+ if ((local_id.x == 0u)) {
+ output.Store(0u, asuint(failed));
+ }
+}
+
+[numthreads(256, 1, 1)]
+void main(tint_symbol_1 tint_symbol) {
+ main_inner(tint_symbol.global_id, tint_symbol.local_id, tint_symbol.local_invocation_index);
+ return;
+}
diff --git a/test/tint/bug/tint/1926.wgsl.expected.fxc.hlsl b/test/tint/bug/tint/1926.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9367ce7
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+groupshared uint sh_atomic_failed;
+
+uint tint_workgroupUniformLoad_sh_atomic_failed() {
+ GroupMemoryBarrierWithGroupSync();
+ const uint result = sh_atomic_failed;
+ GroupMemoryBarrierWithGroupSync();
+ return result;
+}
+
+RWByteAddressBuffer output : register(u4);
+
+struct tint_symbol_1 {
+ uint3 local_id : SV_GroupThreadID;
+ uint local_invocation_index : SV_GroupIndex;
+ uint3 global_id : SV_DispatchThreadID;
+};
+
+void main_inner(uint3 global_id, uint3 local_id, uint local_invocation_index) {
+ if ((local_invocation_index < 1u)) {
+ sh_atomic_failed = 0u;
+ }
+ GroupMemoryBarrierWithGroupSync();
+ const uint failed = tint_workgroupUniformLoad_sh_atomic_failed();
+ if ((local_id.x == 0u)) {
+ output.Store(0u, asuint(failed));
+ }
+}
+
+[numthreads(256, 1, 1)]
+void main(tint_symbol_1 tint_symbol) {
+ main_inner(tint_symbol.global_id, tint_symbol.local_id, tint_symbol.local_invocation_index);
+ return;
+}
diff --git a/test/tint/bug/tint/1926.wgsl.expected.glsl b/test/tint/bug/tint/1926.wgsl.expected.glsl
new file mode 100644
index 0000000..5e3cd06
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+#version 310 es
+
+shared uint sh_atomic_failed;
+uint tint_workgroupUniformLoad_sh_atomic_failed() {
+ barrier();
+ uint result = sh_atomic_failed;
+ barrier();
+ return result;
+}
+
+layout(binding = 4, std430) buffer tint_symbol_block_ssbo {
+ uint inner;
+} tint_symbol;
+
+void tint_symbol_1(uvec3 global_id, uvec3 local_id, uint local_invocation_index) {
+ if ((local_invocation_index < 1u)) {
+ sh_atomic_failed = 0u;
+ }
+ barrier();
+ uint failed = tint_workgroupUniformLoad_sh_atomic_failed();
+ if ((local_id.x == 0u)) {
+ tint_symbol.inner = failed;
+ }
+}
+
+layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol_1(gl_GlobalInvocationID, gl_LocalInvocationID, gl_LocalInvocationIndex);
+ return;
+}
diff --git a/test/tint/bug/tint/1926.wgsl.expected.msl b/test/tint/bug/tint/1926.wgsl.expected.msl
new file mode 100644
index 0000000..1a9d82f
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl.expected.msl
@@ -0,0 +1,27 @@
+#include <metal_stdlib>
+
+using namespace metal;
+uint tint_workgroupUniformLoad(threadgroup uint* const p) {
+ threadgroup_barrier(mem_flags::mem_threadgroup);
+ uint const result = *(p);
+ threadgroup_barrier(mem_flags::mem_threadgroup);
+ return result;
+}
+
+void tint_symbol_inner(uint3 global_id, uint3 local_id, uint local_invocation_index, threadgroup uint* const tint_symbol_1, device uint* const tint_symbol_2) {
+ if ((local_invocation_index < 1u)) {
+ *(tint_symbol_1) = 0u;
+ }
+ threadgroup_barrier(mem_flags::mem_threadgroup);
+ uint const failed = tint_workgroupUniformLoad(tint_symbol_1);
+ if ((local_id[0] == 0u)) {
+ *(tint_symbol_2) = failed;
+ }
+}
+
+kernel void tint_symbol(device uint* tint_symbol_4 [[buffer(0)]], uint3 global_id [[thread_position_in_grid]], uint3 local_id [[thread_position_in_threadgroup]], uint local_invocation_index [[thread_index_in_threadgroup]]) {
+ threadgroup uint tint_symbol_3;
+ tint_symbol_inner(global_id, local_id, local_invocation_index, &(tint_symbol_3), tint_symbol_4);
+ return;
+}
+
diff --git a/test/tint/bug/tint/1926.wgsl.expected.spvasm b/test/tint/bug/tint/1926.wgsl.expected.spvasm
new file mode 100644
index 0000000..48ba716
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 50
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main" %global_id_1 %local_id_1 %local_invocation_index_1
+ OpExecutionMode %main LocalSize 256 1 1
+ OpName %global_id_1 "global_id_1"
+ OpName %local_id_1 "local_id_1"
+ OpName %local_invocation_index_1 "local_invocation_index_1"
+ OpName %sh_atomic_failed "sh_atomic_failed"
+ OpName %output_block "output_block"
+ OpMemberName %output_block 0 "inner"
+ OpName %output "output"
+ OpName %tint_workgroupUniformLoad_sh_atomic_failed "tint_workgroupUniformLoad_sh_atomic_failed"
+ OpName %main_inner "main_inner"
+ OpName %global_id "global_id"
+ OpName %local_id "local_id"
+ OpName %local_invocation_index "local_invocation_index"
+ OpName %main "main"
+ OpDecorate %global_id_1 BuiltIn GlobalInvocationId
+ OpDecorate %local_id_1 BuiltIn LocalInvocationId
+ OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+ OpDecorate %output_block Block
+ OpMemberDecorate %output_block 0 Offset 0
+ OpDecorate %output DescriptorSet 0
+ OpDecorate %output Binding 4
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%global_id_1 = OpVariable %_ptr_Input_v3uint Input
+ %local_id_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+%sh_atomic_failed = OpVariable %_ptr_Workgroup_uint Workgroup
+%output_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_output_block = OpTypePointer StorageBuffer %output_block
+ %output = OpVariable %_ptr_StorageBuffer_output_block StorageBuffer
+ %13 = OpTypeFunction %uint
+ %void = OpTypeVoid
+ %uint_2 = OpConstant %uint 2
+ %uint_264 = OpConstant %uint 264
+ %22 = OpTypeFunction %void %v3uint %v3uint %uint
+ %uint_1 = OpConstant %uint 1
+ %bool = OpTypeBool
+ %33 = OpConstantNull %uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+ %43 = OpTypeFunction %void
+%tint_workgroupUniformLoad_sh_atomic_failed = OpFunction %uint None %13
+ %15 = OpLabel
+ OpControlBarrier %uint_2 %uint_2 %uint_264
+ %20 = OpLoad %uint %sh_atomic_failed
+ OpControlBarrier %uint_2 %uint_2 %uint_264
+ OpReturnValue %20
+ OpFunctionEnd
+ %main_inner = OpFunction %void None %22
+ %global_id = OpFunctionParameter %v3uint
+ %local_id = OpFunctionParameter %v3uint
+%local_invocation_index = OpFunctionParameter %uint
+ %27 = OpLabel
+ %29 = OpULessThan %bool %local_invocation_index %uint_1
+ OpSelectionMerge %31 None
+ OpBranchConditional %29 %32 %31
+ %32 = OpLabel
+ OpStore %sh_atomic_failed %33
+ OpBranch %31
+ %31 = OpLabel
+ OpControlBarrier %uint_2 %uint_2 %uint_264
+ %35 = OpFunctionCall %uint %tint_workgroupUniformLoad_sh_atomic_failed
+ %36 = OpCompositeExtract %uint %local_id 0
+ %37 = OpIEqual %bool %36 %33
+ OpSelectionMerge %38 None
+ OpBranchConditional %37 %39 %38
+ %39 = OpLabel
+ %42 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0
+ OpStore %42 %35
+ OpBranch %38
+ %38 = OpLabel
+ OpReturn
+ OpFunctionEnd
+ %main = OpFunction %void None %43
+ %45 = OpLabel
+ %47 = OpLoad %v3uint %global_id_1
+ %48 = OpLoad %v3uint %local_id_1
+ %49 = OpLoad %uint %local_invocation_index_1
+ %46 = OpFunctionCall %void %main_inner %47 %48 %49
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/bug/tint/1926.wgsl.expected.wgsl b/test/tint/bug/tint/1926.wgsl.expected.wgsl
new file mode 100644
index 0000000..c485055
--- /dev/null
+++ b/test/tint/bug/tint/1926.wgsl.expected.wgsl
@@ -0,0 +1,11 @@
+var<workgroup> sh_atomic_failed : u32;
+
+@group(0) @binding(4) var<storage, read_write> output : u32;
+
+@compute @workgroup_size(256)
+fn main(@builtin(global_invocation_id) global_id : vec3<u32>, @builtin(local_invocation_id) local_id : vec3<u32>) {
+ let failed = workgroupUniformLoad(&(sh_atomic_failed));
+ if ((local_id.x == 0)) {
+ output = failed;
+ }
+}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
index 7db1f5c..33ea9c0 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-uint tint_workgroupUniformLoad(inout uint p) {
+groupshared uint arg_0;
+
+uint tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const uint result = p;
+ const uint result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared uint arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_37307c() {
- uint res = tint_workgroupUniformLoad(arg_0);
+ uint res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
index 7db1f5c..33ea9c0 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
@@ -1,15 +1,16 @@
-uint tint_workgroupUniformLoad(inout uint p) {
+groupshared uint arg_0;
+
+uint tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const uint result = p;
+ const uint result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared uint arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_37307c() {
- uint res = tint_workgroupUniformLoad(arg_0);
+ uint res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl
index 08650d7..fd29d9c 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl
@@ -1,19 +1,19 @@
#version 310 es
-uint tint_workgroupUniformLoad(inout uint p) {
+shared uint arg_0;
+uint tint_workgroupUniformLoad_arg_0() {
barrier();
- uint result = p;
+ uint result = arg_0;
barrier();
return result;
}
-shared uint arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
uint inner;
} prevent_dce;
void workgroupUniformLoad_37307c() {
- uint res = tint_workgroupUniformLoad(arg_0);
+ uint res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
index 31bcd63..05e4c85 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-float tint_workgroupUniformLoad(inout float p) {
+groupshared float arg_0;
+
+float tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const float result = p;
+ const float result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_7a857c() {
- float res = tint_workgroupUniformLoad(arg_0);
+ float res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
index 31bcd63..05e4c85 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
@@ -1,15 +1,16 @@
-float tint_workgroupUniformLoad(inout float p) {
+groupshared float arg_0;
+
+float tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const float result = p;
+ const float result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_7a857c() {
- float res = tint_workgroupUniformLoad(arg_0);
+ float res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl
index b0d7db3..1dc5546 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl
@@ -1,19 +1,19 @@
#version 310 es
-float tint_workgroupUniformLoad(inout float p) {
+shared float arg_0;
+float tint_workgroupUniformLoad_arg_0() {
barrier();
- float result = p;
+ float result = arg_0;
barrier();
return result;
}
-shared float arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
float inner;
} prevent_dce;
void workgroupUniformLoad_7a857c() {
- float res = tint_workgroupUniformLoad(arg_0);
+ float res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
index c495ebc..6d8b261 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int arg_0;
+
+int tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_9d33de() {
- int res = tint_workgroupUniformLoad(arg_0);
+ int res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
index c495ebc..6d8b261 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
@@ -1,15 +1,16 @@
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int arg_0;
+
+int tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_9d33de() {
- int res = tint_workgroupUniformLoad(arg_0);
+ int res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl
index 8d3a9e6..5919644 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl
@@ -1,19 +1,19 @@
#version 310 es
-int tint_workgroupUniformLoad(inout int p) {
+shared int arg_0;
+int tint_workgroupUniformLoad_arg_0() {
barrier();
- int result = p;
+ int result = arg_0;
barrier();
return result;
}
-shared int arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
int inner;
} prevent_dce;
void workgroupUniformLoad_9d33de() {
- int res = tint_workgroupUniformLoad(arg_0);
+ int res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
index ed848f2..c8e40ee 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-float16_t tint_workgroupUniformLoad(inout float16_t p) {
+groupshared float16_t arg_0;
+
+float16_t tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const float16_t result = p;
+ const float16_t result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float16_t arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_e07d08() {
- float16_t res = tint_workgroupUniformLoad(arg_0);
+ float16_t res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store<float16_t>(0u, res);
}
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl
index 9d804d4..fe2cfd0 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl
@@ -1,20 +1,20 @@
#version 310 es
#extension GL_AMD_gpu_shader_half_float : require
-float16_t tint_workgroupUniformLoad(inout float16_t p) {
+shared float16_t arg_0;
+float16_t tint_workgroupUniformLoad_arg_0() {
barrier();
- float16_t result = p;
+ float16_t result = arg_0;
barrier();
return result;
}
-shared float16_t arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
float16_t inner;
} prevent_dce;
void workgroupUniformLoad_e07d08() {
- float16_t res = tint_workgroupUniformLoad(arg_0);
+ float16_t res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
index 7db1f5c..33ea9c0 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-uint tint_workgroupUniformLoad(inout uint p) {
+groupshared uint arg_0;
+
+uint tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const uint result = p;
+ const uint result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared uint arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_37307c() {
- uint res = tint_workgroupUniformLoad(arg_0);
+ uint res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
index 7db1f5c..33ea9c0 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
@@ -1,15 +1,16 @@
-uint tint_workgroupUniformLoad(inout uint p) {
+groupshared uint arg_0;
+
+uint tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const uint result = p;
+ const uint result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared uint arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_37307c() {
- uint res = tint_workgroupUniformLoad(arg_0);
+ uint res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl
index 08650d7..fd29d9c 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl
@@ -1,19 +1,19 @@
#version 310 es
-uint tint_workgroupUniformLoad(inout uint p) {
+shared uint arg_0;
+uint tint_workgroupUniformLoad_arg_0() {
barrier();
- uint result = p;
+ uint result = arg_0;
barrier();
return result;
}
-shared uint arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
uint inner;
} prevent_dce;
void workgroupUniformLoad_37307c() {
- uint res = tint_workgroupUniformLoad(arg_0);
+ uint res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
index 31bcd63..05e4c85 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-float tint_workgroupUniformLoad(inout float p) {
+groupshared float arg_0;
+
+float tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const float result = p;
+ const float result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_7a857c() {
- float res = tint_workgroupUniformLoad(arg_0);
+ float res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
index 31bcd63..05e4c85 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
@@ -1,15 +1,16 @@
-float tint_workgroupUniformLoad(inout float p) {
+groupshared float arg_0;
+
+float tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const float result = p;
+ const float result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_7a857c() {
- float res = tint_workgroupUniformLoad(arg_0);
+ float res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl
index b0d7db3..1dc5546 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl
@@ -1,19 +1,19 @@
#version 310 es
-float tint_workgroupUniformLoad(inout float p) {
+shared float arg_0;
+float tint_workgroupUniformLoad_arg_0() {
barrier();
- float result = p;
+ float result = arg_0;
barrier();
return result;
}
-shared float arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
float inner;
} prevent_dce;
void workgroupUniformLoad_7a857c() {
- float res = tint_workgroupUniformLoad(arg_0);
+ float res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
index c495ebc..6d8b261 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int arg_0;
+
+int tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_9d33de() {
- int res = tint_workgroupUniformLoad(arg_0);
+ int res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
index c495ebc..6d8b261 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
@@ -1,15 +1,16 @@
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int arg_0;
+
+int tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_9d33de() {
- int res = tint_workgroupUniformLoad(arg_0);
+ int res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store(0u, asuint(res));
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl
index 8d3a9e6..5919644 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl
@@ -1,19 +1,19 @@
#version 310 es
-int tint_workgroupUniformLoad(inout int p) {
+shared int arg_0;
+int tint_workgroupUniformLoad_arg_0() {
barrier();
- int result = p;
+ int result = arg_0;
barrier();
return result;
}
-shared int arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
int inner;
} prevent_dce;
void workgroupUniformLoad_9d33de() {
- int res = tint_workgroupUniformLoad(arg_0);
+ int res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
index ed848f2..c8e40ee 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
@@ -1,15 +1,16 @@
-float16_t tint_workgroupUniformLoad(inout float16_t p) {
+groupshared float16_t arg_0;
+
+float16_t tint_workgroupUniformLoad_arg_0() {
GroupMemoryBarrierWithGroupSync();
- const float16_t result = p;
+ const float16_t result = arg_0;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float16_t arg_0;
RWByteAddressBuffer prevent_dce : register(u0, space2);
void workgroupUniformLoad_e07d08() {
- float16_t res = tint_workgroupUniformLoad(arg_0);
+ float16_t res = tint_workgroupUniformLoad_arg_0();
prevent_dce.Store<float16_t>(0u, res);
}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl
index 9d804d4..fe2cfd0 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl
@@ -1,20 +1,20 @@
#version 310 es
#extension GL_AMD_gpu_shader_half_float : require
-float16_t tint_workgroupUniformLoad(inout float16_t p) {
+shared float16_t arg_0;
+float16_t tint_workgroupUniformLoad_arg_0() {
barrier();
- float16_t result = p;
+ float16_t result = arg_0;
barrier();
return result;
}
-shared float16_t arg_0;
layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
float16_t inner;
} prevent_dce;
void workgroupUniformLoad_e07d08() {
- float16_t res = tint_workgroupUniformLoad(arg_0);
+ float16_t res = tint_workgroupUniformLoad_arg_0();
prevent_dce.inner = res;
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.dxc.hlsl
index d8a47b9..a9b6ea5 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.dxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-typedef int tint_workgroupUniformLoad_ret[4];
-tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[4]) {
+groupshared int v[4];
+
+typedef int tint_workgroupUniformLoad_v_ret[4];
+tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const int result[4] = p;
+ const int result[4] = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[4];
-
typedef int foo_ret[4];
foo_ret foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.fxc.hlsl
index d8a47b9..a9b6ea5 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.fxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-typedef int tint_workgroupUniformLoad_ret[4];
-tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[4]) {
+groupshared int v[4];
+
+typedef int tint_workgroupUniformLoad_v_ret[4];
+tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const int result[4] = p;
+ const int result[4] = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[4];
-
typedef int foo_ret[4];
foo_ret foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.glsl
index 661c13b..cda9b79 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.glsl
@@ -4,15 +4,15 @@
void unused_entry_point() {
return;
}
-int[4] tint_workgroupUniformLoad(inout int p[4]) {
+shared int v[4];
+int[4] tint_workgroupUniformLoad_v() {
barrier();
- int result[4] = p;
+ int result[4] = v;
barrier();
return result;
}
-shared int v[4];
int[4] foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.dxc.hlsl
index 1958f4a..a42cbe5 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.dxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-typedef int tint_workgroupUniformLoad_ret[128];
-tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
+groupshared int v[128];
+
+typedef int tint_workgroupUniformLoad_v_ret[128];
+tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const int result[128] = p;
+ const int result[128] = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[128];
-
int foo() {
- const int tint_symbol[128] = tint_workgroupUniformLoad(v);
+ const int tint_symbol[128] = tint_workgroupUniformLoad_v();
return tint_symbol[0];
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.fxc.hlsl
index 1958f4a..a42cbe5 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.fxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-typedef int tint_workgroupUniformLoad_ret[128];
-tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
+groupshared int v[128];
+
+typedef int tint_workgroupUniformLoad_v_ret[128];
+tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const int result[128] = p;
+ const int result[128] = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[128];
-
int foo() {
- const int tint_symbol[128] = tint_workgroupUniformLoad(v);
+ const int tint_symbol[128] = tint_workgroupUniformLoad_v();
return tint_symbol[0];
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.glsl
index fa13387..6e551e8 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.glsl
@@ -4,16 +4,16 @@
void unused_entry_point() {
return;
}
-int[128] tint_workgroupUniformLoad(inout int p[128]) {
+shared int v[128];
+int[128] tint_workgroupUniformLoad_v() {
barrier();
- int result[128] = p;
+ int result[128] = v;
barrier();
return result;
}
-shared int v[128];
int foo() {
- int tint_symbol[128] = tint_workgroupUniformLoad(v);
+ int tint_symbol[128] = tint_workgroupUniformLoad_v();
return tint_symbol[0];
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.dxc.hlsl
index 1958f4a..a42cbe5 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.dxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-typedef int tint_workgroupUniformLoad_ret[128];
-tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
+groupshared int v[128];
+
+typedef int tint_workgroupUniformLoad_v_ret[128];
+tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const int result[128] = p;
+ const int result[128] = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[128];
-
int foo() {
- const int tint_symbol[128] = tint_workgroupUniformLoad(v);
+ const int tint_symbol[128] = tint_workgroupUniformLoad_v();
return tint_symbol[0];
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.fxc.hlsl
index 1958f4a..a42cbe5 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.fxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-typedef int tint_workgroupUniformLoad_ret[128];
-tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
+groupshared int v[128];
+
+typedef int tint_workgroupUniformLoad_v_ret[128];
+tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const int result[128] = p;
+ const int result[128] = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[128];
-
int foo() {
- const int tint_symbol[128] = tint_workgroupUniformLoad(v);
+ const int tint_symbol[128] = tint_workgroupUniformLoad_v();
return tint_symbol[0];
}
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.glsl
index fa13387..6e551e8 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.glsl
@@ -4,16 +4,16 @@
void unused_entry_point() {
return;
}
-int[128] tint_workgroupUniformLoad(inout int p[128]) {
+shared int v[128];
+int[128] tint_workgroupUniformLoad_v() {
barrier();
- int result[128] = p;
+ int result[128] = v;
barrier();
return result;
}
-shared int v[128];
int foo() {
- int tint_symbol[128] = tint_workgroupUniformLoad(v);
+ int tint_symbol[128] = tint_workgroupUniformLoad_v();
return tint_symbol[0];
}
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.dxc.hlsl
index 28f1e19..afb3e79 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.dxc.hlsl
@@ -3,15 +3,15 @@
return;
}
-bool tint_workgroupUniformLoad(inout bool p) {
+groupshared bool v;
+
+bool tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const bool result = p;
+ const bool result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared bool v;
-
bool foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.fxc.hlsl
index 28f1e19..afb3e79 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.fxc.hlsl
@@ -3,15 +3,15 @@
return;
}
-bool tint_workgroupUniformLoad(inout bool p) {
+groupshared bool v;
+
+bool tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const bool result = p;
+ const bool result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared bool v;
-
bool foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.glsl
index 9793dba..4962454 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.glsl
@@ -4,15 +4,15 @@
void unused_entry_point() {
return;
}
-bool tint_workgroupUniformLoad(inout bool p) {
+shared bool v;
+bool tint_workgroupUniformLoad_v() {
barrier();
- bool result = p;
+ bool result = v;
barrier();
return result;
}
-shared bool v;
bool foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.dxc.hlsl
index 98df2c2..ec23355 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.dxc.hlsl
@@ -3,22 +3,30 @@
return;
}
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int a;
+
+int tint_workgroupUniformLoad_a() {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = a;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int a;
groupshared int b;
+int tint_workgroupUniformLoad_b() {
+ GroupMemoryBarrierWithGroupSync();
+ const int result = b;
+ GroupMemoryBarrierWithGroupSync();
+ return result;
+}
+
void foo() {
{
int i = 0;
while (true) {
const int tint_symbol = i;
- const int tint_symbol_1 = tint_workgroupUniformLoad(a);
+ const int tint_symbol_1 = tint_workgroupUniformLoad_a();
if (!((tint_symbol < tint_symbol_1))) {
break;
}
@@ -26,7 +34,7 @@
}
{
const int tint_symbol_2 = i;
- const int tint_symbol_3 = tint_workgroupUniformLoad(b);
+ const int tint_symbol_3 = tint_workgroupUniformLoad_b();
i = (tint_symbol_2 + tint_symbol_3);
}
}
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.fxc.hlsl
index 98df2c2..ec23355 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.fxc.hlsl
@@ -3,22 +3,30 @@
return;
}
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int a;
+
+int tint_workgroupUniformLoad_a() {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = a;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int a;
groupshared int b;
+int tint_workgroupUniformLoad_b() {
+ GroupMemoryBarrierWithGroupSync();
+ const int result = b;
+ GroupMemoryBarrierWithGroupSync();
+ return result;
+}
+
void foo() {
{
int i = 0;
while (true) {
const int tint_symbol = i;
- const int tint_symbol_1 = tint_workgroupUniformLoad(a);
+ const int tint_symbol_1 = tint_workgroupUniformLoad_a();
if (!((tint_symbol < tint_symbol_1))) {
break;
}
@@ -26,7 +34,7 @@
}
{
const int tint_symbol_2 = i;
- const int tint_symbol_3 = tint_workgroupUniformLoad(b);
+ const int tint_symbol_3 = tint_workgroupUniformLoad_b();
i = (tint_symbol_2 + tint_symbol_3);
}
}
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.glsl
index 97926d0..09c4abe 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.glsl
@@ -4,21 +4,28 @@
void unused_entry_point() {
return;
}
-int tint_workgroupUniformLoad(inout int p) {
+shared int a;
+int tint_workgroupUniformLoad_a() {
barrier();
- int result = p;
+ int result = a;
barrier();
return result;
}
-shared int a;
shared int b;
+int tint_workgroupUniformLoad_b() {
+ barrier();
+ int result = b;
+ barrier();
+ return result;
+}
+
void foo() {
{
int i = 0;
while (true) {
int tint_symbol = i;
- int tint_symbol_1 = tint_workgroupUniformLoad(a);
+ int tint_symbol_1 = tint_workgroupUniformLoad_a();
if (!((tint_symbol < tint_symbol_1))) {
break;
}
@@ -26,7 +33,7 @@
}
{
int tint_symbol_2 = i;
- int tint_symbol_3 = tint_workgroupUniformLoad(b);
+ int tint_symbol_3 = tint_workgroupUniformLoad_b();
i = (tint_symbol_2 + tint_symbol_3);
}
}
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.dxc.hlsl
index bfc2a25..48a589f 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.dxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-bool tint_workgroupUniformLoad(inout bool p) {
+groupshared bool v;
+
+bool tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const bool result = p;
+ const bool result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared bool v;
-
int foo() {
- if (tint_workgroupUniformLoad(v)) {
+ if (tint_workgroupUniformLoad_v()) {
return 42;
}
return 0;
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.fxc.hlsl
index bfc2a25..48a589f 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.fxc.hlsl
@@ -3,17 +3,17 @@
return;
}
-bool tint_workgroupUniformLoad(inout bool p) {
+groupshared bool v;
+
+bool tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const bool result = p;
+ const bool result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared bool v;
-
int foo() {
- if (tint_workgroupUniformLoad(v)) {
+ if (tint_workgroupUniformLoad_v()) {
return 42;
}
return 0;
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.glsl
index ef53245..ad15d25 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.glsl
@@ -4,16 +4,16 @@
void unused_entry_point() {
return;
}
-bool tint_workgroupUniformLoad(inout bool p) {
+shared bool v;
+bool tint_workgroupUniformLoad_v() {
barrier();
- bool result = p;
+ bool result = v;
barrier();
return result;
}
-shared bool v;
int foo() {
- if (tint_workgroupUniformLoad(v)) {
+ if (tint_workgroupUniformLoad_v()) {
return 42;
}
return 0;
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.dxc.hlsl
index 053093e..1b22b46 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.dxc.hlsl
@@ -3,15 +3,15 @@
return;
}
-float3x3 tint_workgroupUniformLoad(inout float3x3 p) {
+groupshared float3x3 v;
+
+float3x3 tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const float3x3 result = p;
+ const float3x3 result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float3x3 v;
-
float3x3 foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.fxc.hlsl
index 053093e..1b22b46 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.fxc.hlsl
@@ -3,15 +3,15 @@
return;
}
-float3x3 tint_workgroupUniformLoad(inout float3x3 p) {
+groupshared float3x3 v;
+
+float3x3 tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const float3x3 result = p;
+ const float3x3 result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float3x3 v;
-
float3x3 foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.glsl
index 86ea506..ac70b34a 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.glsl
@@ -4,15 +4,15 @@
void unused_entry_point() {
return;
}
-mat3 tint_workgroupUniformLoad(inout mat3 p) {
+shared mat3 v;
+mat3 tint_workgroupUniformLoad_v() {
barrier();
- mat3 result = p;
+ mat3 result = v;
barrier();
return result;
}
-shared mat3 v;
mat3 foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl
index 201beac..eb3a52c 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.dxc.hlsl
@@ -12,15 +12,15 @@
Inner a[4];
};
-Outer tint_workgroupUniformLoad(inout Outer p) {
+groupshared Outer v;
+
+Outer tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const Outer result = p;
+ const Outer result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared Outer v;
-
Outer foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl
index 201beac..eb3a52c 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.fxc.hlsl
@@ -12,15 +12,15 @@
Inner a[4];
};
-Outer tint_workgroupUniformLoad(inout Outer p) {
+groupshared Outer v;
+
+Outer tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const Outer result = p;
+ const Outer result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared Outer v;
-
Outer foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.glsl
index 203e90d..7f9766a 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.glsl
@@ -14,15 +14,15 @@
Inner a[4];
};
-Outer tint_workgroupUniformLoad(inout Outer p) {
+shared Outer v;
+Outer tint_workgroupUniformLoad_v() {
barrier();
- Outer result = p;
+ Outer result = v;
barrier();
return result;
}
-shared Outer v;
Outer foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.dxc.hlsl
index 77473c206..80cd6df 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.dxc.hlsl
@@ -3,15 +3,15 @@
return;
}
-float4 tint_workgroupUniformLoad(inout float4 p) {
+groupshared float4 v;
+
+float4 tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const float4 result = p;
+ const float4 result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float4 v;
-
float4 foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.fxc.hlsl
index 77473c206..80cd6df 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.fxc.hlsl
@@ -3,15 +3,15 @@
return;
}
-float4 tint_workgroupUniformLoad(inout float4 p) {
+groupshared float4 v;
+
+float4 tint_workgroupUniformLoad_v() {
GroupMemoryBarrierWithGroupSync();
- const float4 result = p;
+ const float4 result = v;
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared float4 v;
-
float4 foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.glsl
index 76e29ed..f4dc643 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.glsl
@@ -4,15 +4,15 @@
void unused_entry_point() {
return;
}
-vec4 tint_workgroupUniformLoad(inout vec4 p) {
+shared vec4 v;
+vec4 tint_workgroupUniformLoad_v() {
barrier();
- vec4 result = p;
+ vec4 result = v;
barrier();
return result;
}
-shared vec4 v;
vec4 foo() {
- return tint_workgroupUniformLoad(v);
+ return tint_workgroupUniformLoad_v();
}
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.dxc.hlsl
index 2d0fe18..de20d9c 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.dxc.hlsl
@@ -3,20 +3,21 @@
return;
}
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int v[4];
+
+int tint_workgroupUniformLoad_v_X(uint p[1]) {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = v[p[0]];
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[4];
-
int foo_v_X(uint p[1]) {
- return tint_workgroupUniformLoad(v[p[0]]);
+ const uint tint_symbol[1] = {p[0u]};
+ return tint_workgroupUniformLoad_v_X(tint_symbol);
}
int bar() {
- const uint tint_symbol[1] = (uint[1])0;
- return foo_v_X(tint_symbol);
+ const uint tint_symbol_1[1] = (uint[1])0;
+ return foo_v_X(tint_symbol_1);
}
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.fxc.hlsl
index 2d0fe18..de20d9c 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.fxc.hlsl
@@ -3,20 +3,21 @@
return;
}
-int tint_workgroupUniformLoad(inout int p) {
+groupshared int v[4];
+
+int tint_workgroupUniformLoad_v_X(uint p[1]) {
GroupMemoryBarrierWithGroupSync();
- const int result = p;
+ const int result = v[p[0]];
GroupMemoryBarrierWithGroupSync();
return result;
}
-groupshared int v[4];
-
int foo_v_X(uint p[1]) {
- return tint_workgroupUniformLoad(v[p[0]]);
+ const uint tint_symbol[1] = {p[0u]};
+ return tint_workgroupUniformLoad_v_X(tint_symbol);
}
int bar() {
- const uint tint_symbol[1] = (uint[1])0;
- return foo_v_X(tint_symbol);
+ const uint tint_symbol_1[1] = (uint[1])0;
+ return foo_v_X(tint_symbol_1);
}
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.glsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.glsl
index aa2e549..7555463 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.glsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.glsl
@@ -4,20 +4,21 @@
void unused_entry_point() {
return;
}
-int tint_workgroupUniformLoad(inout int p) {
+shared int v[4];
+int tint_workgroupUniformLoad_v_X(uint p[1]) {
barrier();
- int result = p;
+ int result = v[p[0]];
barrier();
return result;
}
-shared int v[4];
int foo_v_X(uint p[1]) {
- return tint_workgroupUniformLoad(v[p[0]]);
+ uint tint_symbol[1] = uint[1](p[0u]);
+ return tint_workgroupUniformLoad_v_X(tint_symbol);
}
int bar() {
- uint tint_symbol[1] = uint[1](0u);
- return foo_v_X(tint_symbol);
+ uint tint_symbol_1[1] = uint[1](0u);
+ return foo_v_X(tint_symbol_1);
}