mirror of
				https://github.com/encounter/dawn-cmake.git
				synced 2025-10-25 19:20:30 +00:00 
			
		
		
		
	Refactor the ExpandCompoundAssignment transform to handle these statements, which delivers support for all of the non-WGSL backends. Fixed: tint:1488 Change-Id: I96cdc31851c61f6d92d296447d0b0637907d5fe5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86004 Reviewed-by: Ben Clayton <bclayton@google.com>
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ; SPIR-V
 | |
| ; Version: 1.3
 | |
| ; Generator: Google Tint Compiler; 0
 | |
| ; Bound: 30
 | |
| ; Schema: 0
 | |
|                OpCapability Shader
 | |
|                OpMemoryModel Logical GLSL450
 | |
|                OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
 | |
|                OpExecutionMode %unused_entry_point LocalSize 1 1 1
 | |
|                OpName %i_block "i_block"
 | |
|                OpMemberName %i_block 0 "inner"
 | |
|                OpName %i "i"
 | |
|                OpName %unused_entry_point "unused_entry_point"
 | |
|                OpName %main "main"
 | |
|                OpDecorate %i_block Block
 | |
|                OpMemberDecorate %i_block 0 Offset 0
 | |
|                OpDecorate %i DescriptorSet 0
 | |
|                OpDecorate %i Binding 0
 | |
|        %uint = OpTypeInt 32 0
 | |
|     %i_block = OpTypeStruct %uint
 | |
| %_ptr_StorageBuffer_i_block = OpTypePointer StorageBuffer %i_block
 | |
|           %i = OpVariable %_ptr_StorageBuffer_i_block StorageBuffer
 | |
|        %void = OpTypeVoid
 | |
|           %5 = OpTypeFunction %void
 | |
|      %uint_0 = OpConstant %uint 0
 | |
| %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
 | |
|      %uint_1 = OpConstant %uint 1
 | |
|     %uint_10 = OpConstant %uint 10
 | |
|        %bool = OpTypeBool
 | |
| %unused_entry_point = OpFunction %void None %5
 | |
|           %8 = OpLabel
 | |
|                OpReturn
 | |
|                OpFunctionEnd
 | |
|        %main = OpFunction %void None %5
 | |
|          %10 = OpLabel
 | |
|          %13 = OpAccessChain %_ptr_StorageBuffer_uint %i %uint_0
 | |
|          %14 = OpAccessChain %_ptr_StorageBuffer_uint %i %uint_0
 | |
|          %15 = OpLoad %uint %14
 | |
|          %17 = OpISub %uint %15 %uint_1
 | |
|                OpStore %13 %17
 | |
|                OpBranch %18
 | |
|          %18 = OpLabel
 | |
|                OpLoopMerge %19 %20 None
 | |
|                OpBranch %21
 | |
|          %21 = OpLabel
 | |
|          %23 = OpAccessChain %_ptr_StorageBuffer_uint %i %uint_0
 | |
|          %24 = OpLoad %uint %23
 | |
|          %26 = OpULessThan %bool %24 %uint_10
 | |
|          %22 = OpLogicalNot %bool %26
 | |
|                OpSelectionMerge %28 None
 | |
|                OpBranchConditional %22 %29 %28
 | |
|          %29 = OpLabel
 | |
|                OpBranch %19
 | |
|          %28 = OpLabel
 | |
|                OpBranch %20
 | |
|          %20 = OpLabel
 | |
|                OpBranch %18
 | |
|          %19 = OpLabel
 | |
|                OpReturn
 | |
|                OpFunctionEnd
 |