dawn-cmake/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm
Ben Clayton 75db82c96b sanitizers: Use the ZeroInitWorkgroupMemory transform
Zero the workgroup memory for all backends.
We can probably disable this for the backends that support workgroup zeroing, but that's an optimization we can perform later.

Fixed: tint:280
Change-Id: I9cad919ba3a15b8cedfe6939317d1f6b95425453
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/55244
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-06-18 22:44:31 +00:00

45 lines
1.5 KiB
Plaintext

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol
OpExecutionMode %main LocalSize 1 1 1
OpName %i "i"
OpName %tint_symbol "tint_symbol"
OpName %main "main"
OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
%int = OpTypeInt 32 1
%_ptr_Workgroup_int = OpTypePointer Workgroup %int
%i = OpVariable %_ptr_Workgroup_int Workgroup
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%void = OpTypeVoid
%7 = OpTypeFunction %void
%uint_0 = OpConstant %uint 0
%bool = OpTypeBool
%17 = OpConstantNull %int
%uint_2 = OpConstant %uint 2
%uint_264 = OpConstant %uint 264
%int_123 = OpConstant %int 123
%int_1 = OpConstant %int 1
%main = OpFunction %void None %7
%10 = OpLabel
%11 = OpLoad %uint %tint_symbol
%13 = OpIEqual %bool %11 %uint_0
OpSelectionMerge %15 None
OpBranchConditional %13 %16 %15
%16 = OpLabel
OpStore %i %17
OpBranch %15
%15 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
OpStore %i %int_123
%22 = OpLoad %int %i
%24 = OpIAdd %int %22 %int_1
OpReturn
OpFunctionEnd