blob: 945620bd41b4a1335eebebf82a98d4dcd2f07322 [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 42
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main"
OpExecutionMode %main LocalSize 1 1 1
OpName %in_block "in_block"
OpMemberName %in_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "inner"
OpName %Inner "Inner"
OpMemberName %Inner 0 "scalar_f32"
OpMemberName %Inner 1 "vec3_f32"
OpMemberName %Inner 2 "mat2x4_f32"
OpName %in "in"
OpName %out "out"
OpName %assign_and_preserve_padding_1_out_inner "assign_and_preserve_padding_1_out_inner"
OpName %value "value"
OpName %assign_and_preserve_padding_out "assign_and_preserve_padding_out"
OpName %value_0 "value"
OpName %main "main"
OpDecorate %in_block Block
OpMemberDecorate %in_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %Inner 0 Offset 0
OpMemberDecorate %Inner 1 Offset 16
OpMemberDecorate %Inner 2 Offset 32
OpMemberDecorate %Inner 2 ColMajor
OpMemberDecorate %Inner 2 MatrixStride 16
OpDecorate %in NonWritable
OpDecorate %in DescriptorSet 0
OpDecorate %in Binding 0
OpDecorate %out DescriptorSet 0
OpDecorate %out Binding 1
%float = OpTypeFloat 32
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%mat2v4float = OpTypeMatrix %v4float 2
%Inner = OpTypeStruct %float %v3float %mat2v4float
%S = OpTypeStruct %Inner
%in_block = OpTypeStruct %S
%_ptr_StorageBuffer_in_block = OpTypePointer StorageBuffer %in_block
%in = OpVariable %_ptr_StorageBuffer_in_block StorageBuffer
%out = OpVariable %_ptr_StorageBuffer_in_block StorageBuffer
%void = OpTypeVoid
%11 = OpTypeFunction %void %Inner
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%uint_1 = OpConstant %uint 1
%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
%uint_2 = OpConstant %uint 2
%_ptr_StorageBuffer_mat2v4float = OpTypePointer StorageBuffer %mat2v4float
%29 = OpTypeFunction %void %S
%35 = OpTypeFunction %void
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
%assign_and_preserve_padding_1_out_inner = OpFunction %void None %11
%value = OpFunctionParameter %Inner
%15 = OpLabel
%19 = OpAccessChain %_ptr_StorageBuffer_float %out %uint_0 %uint_0 %uint_0
%20 = OpCompositeExtract %float %value 0
OpStore %19 %20
%23 = OpAccessChain %_ptr_StorageBuffer_v3float %out %uint_0 %uint_0 %uint_1
%24 = OpCompositeExtract %v3float %value 1
OpStore %23 %24
%27 = OpAccessChain %_ptr_StorageBuffer_mat2v4float %out %uint_0 %uint_0 %uint_2
%28 = OpCompositeExtract %mat2v4float %value 2
OpStore %27 %28
OpReturn
OpFunctionEnd
%assign_and_preserve_padding_out = OpFunction %void None %29
%value_0 = OpFunctionParameter %S
%32 = OpLabel
%34 = OpCompositeExtract %Inner %value_0 0
%33 = OpFunctionCall %void %assign_and_preserve_padding_1_out_inner %34
OpReturn
OpFunctionEnd
%main = OpFunction %void None %35
%37 = OpLabel
%39 = OpAccessChain %_ptr_StorageBuffer_S %in %uint_0
%40 = OpLoad %S %39
%41 = OpFunctionCall %void %assign_and_preserve_padding_out %40
OpReturn
OpFunctionEnd