blob: 70b175279192ba94d7b159e1627136c714d9fada [file] [log] [blame]
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 28
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main"
OpExecutionMode %main LocalSize 1 1 1
OpSource GLSL 450
OpSourceExtension "GL_EXT_scalar_block_layout"
OpName %main "main"
OpName %SSBOScalar "SSBOScalar"
OpMemberName %SSBOScalar 0 "a"
OpMemberName %SSBOScalar 1 "b"
OpMemberName %SSBOScalar 2 "c"
OpMemberName %SSBOScalar 3 "d"
OpName %_ ""
OpMemberDecorate %SSBOScalar 0 Offset 0
OpMemberDecorate %SSBOScalar 1 Offset 8
OpMemberDecorate %SSBOScalar 2 Offset 20
OpMemberDecorate %SSBOScalar 3 Offset 32
OpDecorate %SSBOScalar BufferBlock
OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%SSBOScalar = OpTypeStruct %v2float %v3float %v3float %v3float
%_ptr_Uniform_SSBOScalar = OpTypePointer Uniform %SSBOScalar
%_ = OpVariable %_ptr_Uniform_SSBOScalar Uniform
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%int_2 = OpConstant %int 2
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%float_2 = OpConstant %float 2.0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%main = OpFunction %void None %3
%5 = OpLabel
%v3_ptr = OpAccessChain %_ptr_Uniform_v3float %_ %int_1
%v3 = OpLoad %v3float %v3_ptr
%v3_mod = OpCompositeInsert %v3float %float_2 %v3 2
%v2 = OpVectorShuffle %v2float %v3 %v3 0 1
%v1 = OpCompositeExtract %float %v3 2
%v2_mul = OpVectorTimesScalar %v2float %v2 %v1
%v2_ptr = OpAccessChain %_ptr_Uniform_v2float %_ %int_0
OpStore %v2_ptr %v2_mul
OpStore %v3_ptr %v3_mod
OpReturn
OpFunctionEnd