mirror of
				https://github.com/encounter/dawn-cmake.git
				synced 2025-10-27 12:10:29 +00:00 
			
		
		
		
	This CL adds `<<=` and `>>=` to the supported operators in WGSL. The ExpandCompoundAssignment transform is used to convert to the expanded form. Bug: tint:1594 Change-Id: I20519052c52d4b69bc90def1acc5c0a30c36fd8a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/97980 Auto-Submit: Dan Sinclair <dsinclair@chromium.org> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Commit-Queue: Ben Clayton <bclayton@google.com>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ; SPIR-V
 | |
| ; Version: 1.3
 | |
| ; Generator: Google Tint Compiler; 0
 | |
| ; Bound: 19
 | |
| ; Schema: 0
 | |
|                OpCapability Shader
 | |
|                OpMemoryModel Logical GLSL450
 | |
|                OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
 | |
|                OpExecutionMode %unused_entry_point LocalSize 1 1 1
 | |
|                OpName %S "S"
 | |
|                OpMemberName %S 0 "a"
 | |
|                OpName %v "v"
 | |
|                OpName %unused_entry_point "unused_entry_point"
 | |
|                OpName %foo "foo"
 | |
|                OpDecorate %S Block
 | |
|                OpMemberDecorate %S 0 Offset 0
 | |
|                OpDecorate %v DescriptorSet 0
 | |
|                OpDecorate %v Binding 0
 | |
|         %int = OpTypeInt 32 1
 | |
|           %S = OpTypeStruct %int
 | |
| %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
 | |
|           %v = OpVariable %_ptr_StorageBuffer_S StorageBuffer
 | |
|        %void = OpTypeVoid
 | |
|           %5 = OpTypeFunction %void
 | |
|        %uint = OpTypeInt 32 0
 | |
|      %uint_0 = OpConstant %uint 0
 | |
| %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
 | |
|      %uint_2 = OpConstant %uint 2
 | |
| %unused_entry_point = OpFunction %void None %5
 | |
|           %8 = OpLabel
 | |
|                OpReturn
 | |
|                OpFunctionEnd
 | |
|         %foo = OpFunction %void None %5
 | |
|          %10 = OpLabel
 | |
|          %14 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0
 | |
|          %15 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0
 | |
|          %16 = OpLoad %int %15
 | |
|          %18 = OpShiftLeftLogical %int %16 %uint_2
 | |
|                OpStore %14 %18
 | |
|                OpReturn
 | |
|                OpFunctionEnd
 |