| ; SPIR-V |
| ; Version: 1.0 |
| ; Generator: Khronos Glslang Reference Front End; 10 |
| ; Bound: 86 |
| ; Schema: 0 |
| OpCapability Shader |
| %1 = OpExtInstImport "GLSL.std.450" |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID |
| OpExecutionMode %main LocalSize 128 1 1 |
| OpSource GLSL 450 |
| OpName %main "main" |
| OpName %setOutput_i1_f1_ "setOutput(i1;f1;" |
| OpName %flatIndex "flatIndex" |
| OpName %value "value" |
| OpName %getAAtOutCoords_ "getAAtOutCoords(" |
| OpName %unaryOperation_f1_ "unaryOperation(f1;" |
| OpName %a "a" |
| OpName %ssbOut "ssbOut" |
| OpMemberName %ssbOut 0 "result" |
| OpName %_ "" |
| OpName %ssbA "ssbA" |
| OpMemberName %ssbA 0 "A" |
| OpName %__0 "" |
| OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" |
| OpName %index "index" |
| OpName %Uniforms "Uniforms" |
| OpMemberName %Uniforms 0 "NAN" |
| OpMemberName %Uniforms 1 "aShape" |
| OpMemberName %Uniforms 2 "outShape" |
| OpMemberName %Uniforms 3 "outShapeStrides" |
| OpMemberName %Uniforms 4 "size" |
| OpName %__1 "" |
| OpName %a_0 "a" |
| OpName %param "param" |
| OpName %param_0 "param" |
| OpName %param_1 "param" |
| OpDecorate %_runtimearr_float ArrayStride 4 |
| OpMemberDecorate %ssbOut 0 NonReadable |
| OpMemberDecorate %ssbOut 0 Offset 0 |
| OpDecorate %ssbOut BufferBlock |
| OpDecorate %_ DescriptorSet 0 |
| OpDecorate %_ Binding 0 |
| OpDecorate %_runtimearr_float_0 ArrayStride 4 |
| OpMemberDecorate %ssbA 0 NonWritable |
| OpMemberDecorate %ssbA 0 Offset 0 |
| OpDecorate %ssbA BufferBlock |
| OpDecorate %__0 DescriptorSet 0 |
| OpDecorate %__0 Binding 1 |
| OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId |
| OpMemberDecorate %Uniforms 0 Offset 0 |
| OpMemberDecorate %Uniforms 1 Offset 4 |
| OpMemberDecorate %Uniforms 2 Offset 8 |
| OpMemberDecorate %Uniforms 3 Offset 12 |
| OpMemberDecorate %Uniforms 4 Offset 16 |
| OpDecorate %Uniforms Block |
| OpDecorate %__1 DescriptorSet 0 |
| OpDecorate %__1 Binding 2 |
| OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize |
| %void = OpTypeVoid |
| %3 = OpTypeFunction %void |
| %int = OpTypeInt 32 1 |
| %_ptr_Function_int = OpTypePointer Function %int |
| %float = OpTypeFloat 32 |
| %_ptr_Function_float = OpTypePointer Function %float |
| %10 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float |
| %15 = OpTypeFunction %float |
| %18 = OpTypeFunction %float %_ptr_Function_float |
| %_runtimearr_float = OpTypeRuntimeArray %float |
| %ssbOut = OpTypeStruct %_runtimearr_float |
| %_ptr_Uniform_ssbOut = OpTypePointer Uniform %ssbOut |
| %_ = OpVariable %_ptr_Uniform_ssbOut Uniform |
| %int_0 = OpConstant %int 0 |
| %_ptr_Uniform_float = OpTypePointer Uniform %float |
| %_runtimearr_float_0 = OpTypeRuntimeArray %float |
| %ssbA = OpTypeStruct %_runtimearr_float_0 |
| %_ptr_Uniform_ssbA = OpTypePointer Uniform %ssbA |
| %__0 = OpVariable %_ptr_Uniform_ssbA Uniform |
| %uint = OpTypeInt 32 0 |
| %v3uint = OpTypeVector %uint 3 |
| %_ptr_Input_v3uint = OpTypePointer Input %v3uint |
| %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input |
| %uint_0 = OpConstant %uint 0 |
| %_ptr_Input_uint = OpTypePointer Input %uint |
| %float_0 = OpConstant %float 0 |
| %bool = OpTypeBool |
| %float_0x1p_128 = OpConstant %float 0x1p+128 |
| %Uniforms = OpTypeStruct %float %int %int %int %int |
| %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms |
| %__1 = OpVariable %_ptr_Uniform_Uniforms Uniform |
| %int_4 = OpConstant %int 4 |
| %_ptr_Uniform_int = OpTypePointer Uniform %int |
| %uint_128 = OpConstant %uint 128 |
| %uint_1 = OpConstant %uint 1 |
| %gl_WorkGroupSize = OpConstantComposite %v3uint %uint_128 %uint_1 %uint_1 |
| %main = OpFunction %void None %3 |
| %5 = OpLabel |
| %index = OpVariable %_ptr_Function_int Function |
| %a_0 = OpVariable %_ptr_Function_float Function |
| %param = OpVariable %_ptr_Function_float Function |
| %param_0 = OpVariable %_ptr_Function_int Function |
| %param_1 = OpVariable %_ptr_Function_float Function |
| %60 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 |
| %61 = OpLoad %uint %60 |
| %62 = OpBitcast %int %61 |
| OpStore %index %62 |
| %63 = OpLoad %int %index |
| %69 = OpAccessChain %_ptr_Uniform_int %__1 %int_4 |
| %70 = OpLoad %int %69 |
| %71 = OpSLessThan %bool %63 %70 |
| OpSelectionMerge %73 None |
| OpBranchConditional %71 %72 %73 |
| %72 = OpLabel |
| %75 = OpFunctionCall %float %getAAtOutCoords_ |
| OpStore %a_0 %75 |
| %77 = OpLoad %float %a_0 |
| OpStore %param %77 |
| %78 = OpFunctionCall %float %unaryOperation_f1_ %param |
| %80 = OpLoad %int %index |
| OpStore %param_0 %80 |
| OpStore %param_1 %78 |
| %82 = OpFunctionCall %void %setOutput_i1_f1_ %param_0 %param_1 |
| OpBranch %73 |
| %73 = OpLabel |
| OpReturn |
| OpFunctionEnd |
| %setOutput_i1_f1_ = OpFunction %void None %10 |
| %flatIndex = OpFunctionParameter %_ptr_Function_int |
| %value = OpFunctionParameter %_ptr_Function_float |
| %14 = OpLabel |
| %27 = OpLoad %int %flatIndex |
| %28 = OpLoad %float %value |
| %30 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %27 |
| OpStore %30 %28 |
| OpReturn |
| OpFunctionEnd |
| %getAAtOutCoords_ = OpFunction %float None %15 |
| %17 = OpLabel |
| %41 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 |
| %42 = OpLoad %uint %41 |
| %43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %42 |
| %44 = OpLoad %float %43 |
| OpReturnValue %44 |
| OpFunctionEnd |
| %unaryOperation_f1_ = OpFunction %float None %18 |
| %a = OpFunctionParameter %_ptr_Function_float |
| %21 = OpLabel |
| %47 = OpLoad %float %a |
| %50 = OpFOrdLessThan %bool %47 %float_0 |
| OpSelectionMerge %52 None |
| OpBranchConditional %50 %51 %52 |
| %51 = OpLabel |
| OpReturnValue %float_0x1p_128 |
| %52 = OpLabel |
| %55 = OpLoad %float %a |
| %56 = OpExtInst %float %1 Log %55 |
| OpReturnValue %56 |
| OpFunctionEnd |