; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 103
; Schema: 0
               OpCapability Shader
         %43 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
               OpExecutionMode %main LocalSize 1 1 1
               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
               OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
               OpName %ResultMatrix "ResultMatrix"
               OpMemberName %ResultMatrix 0 "numbers"
               OpName %resultMatrix "resultMatrix"
               OpName %FirstMatrix "FirstMatrix"
               OpMemberName %FirstMatrix 0 "numbers"
               OpName %firstMatrix "firstMatrix"
               OpName %SecondMatrix "SecondMatrix"
               OpMemberName %SecondMatrix 0 "numbers"
               OpName %secondMatrix "secondMatrix"
               OpName %Uniforms "Uniforms"
               OpMemberName %Uniforms 0 "NAN"
               OpMemberName %Uniforms 1 "sizeA"
               OpMemberName %Uniforms 2 "sizeB"
               OpName %x_46 "x_46"
               OpName %binaryOperation_f1_f1_ "binaryOperation_f1_f1_"
               OpName %a "a"
               OpName %b "b"
               OpName %x_26 "x_26"
               OpName %main_1 "main_1"
               OpName %index "index"
               OpName %a_1 "a_1"
               OpName %param "param"
               OpName %param_1 "param_1"
               OpName %main_inner "main_inner"
               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
               OpName %main "main"
               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
               OpDecorate %ResultMatrix Block
               OpMemberDecorate %ResultMatrix 0 Offset 0
               OpDecorate %_runtimearr_float ArrayStride 4
               OpDecorate %resultMatrix DescriptorSet 0
               OpDecorate %resultMatrix Binding 2
               OpDecorate %FirstMatrix Block
               OpMemberDecorate %FirstMatrix 0 Offset 0
               OpDecorate %firstMatrix NonWritable
               OpDecorate %firstMatrix DescriptorSet 0
               OpDecorate %firstMatrix Binding 0
               OpDecorate %SecondMatrix Block
               OpMemberDecorate %SecondMatrix 0 Offset 0
               OpDecorate %secondMatrix NonWritable
               OpDecorate %secondMatrix DescriptorSet 0
               OpDecorate %secondMatrix Binding 1
               OpDecorate %Uniforms Block
               OpMemberDecorate %Uniforms 0 Offset 0
               OpMemberDecorate %Uniforms 1 Offset 4
               OpMemberDecorate %Uniforms 2 Offset 8
               OpDecorate %x_46 NonWritable
               OpDecorate %x_46 DescriptorSet 0
               OpDecorate %x_46 Binding 3
       %uint = OpTypeInt 32 0
     %v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
          %7 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
      %float = OpTypeFloat 32
%_runtimearr_float = OpTypeRuntimeArray %float
%ResultMatrix = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ResultMatrix = OpTypePointer StorageBuffer %ResultMatrix
%resultMatrix = OpVariable %_ptr_StorageBuffer_ResultMatrix StorageBuffer
%FirstMatrix = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_FirstMatrix = OpTypePointer StorageBuffer %FirstMatrix
%firstMatrix = OpVariable %_ptr_StorageBuffer_FirstMatrix StorageBuffer
%SecondMatrix = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_SecondMatrix = OpTypePointer StorageBuffer %SecondMatrix
%secondMatrix = OpVariable %_ptr_StorageBuffer_SecondMatrix StorageBuffer
        %int = OpTypeInt 32 1
   %Uniforms = OpTypeStruct %float %int %int
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
       %x_46 = OpVariable %_ptr_Uniform_Uniforms Uniform
%_ptr_Function_float = OpTypePointer Function %float
         %23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
         %30 = OpConstantNull %float
    %float_0 = OpConstant %float 0
       %bool = OpTypeBool
    %float_1 = OpConstant %float 1
    %float_2 = OpConstant %float 2
       %void = OpTypeVoid
         %70 = OpTypeFunction %void
%_ptr_Function_int = OpTypePointer Function %int
         %76 = OpConstantNull %int
     %uint_0 = OpConstant %uint 0
%_ptr_Private_uint = OpTypePointer Private %uint
    %int_n10 = OpConstant %int -10
   %float_n4 = OpConstant %float -4
   %float_n3 = OpConstant %float -3
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
         %94 = OpTypeFunction %void %v3uint
%binaryOperation_f1_f1_ = OpFunction %float None %23
          %a = OpFunctionParameter %_ptr_Function_float
          %b = OpFunctionParameter %_ptr_Function_float
         %28 = OpLabel
       %x_26 = OpVariable %_ptr_Function_float Function %30
         %32 = OpLoad %float %b
         %34 = OpFOrdEqual %bool %32 %float_0
               OpSelectionMerge %36 None
               OpBranchConditional %34 %37 %36
         %37 = OpLabel
               OpReturnValue %float_1
         %36 = OpLabel
         %40 = OpLoad %float %b
         %46 = OpFDiv %float %40 %float_2
         %45 = OpExtInst %float %43 Floor %46
         %47 = OpFMul %float %float_2 %45
         %48 = OpFSub %float %40 %47
         %42 = OpExtInst %float %43 RoundEven %48
         %49 = OpFOrdEqual %bool %42 %float_1
         %41 = OpLogicalNot %bool %49
               OpSelectionMerge %50 None
               OpBranchConditional %41 %51 %52
         %51 = OpLabel
         %54 = OpLoad %float %a
         %56 = OpLoad %float %b
         %58 = OpExtInst %float %43 FAbs %54
         %57 = OpExtInst %float %43 Pow %58 %56
               OpStore %x_26 %57
               OpBranch %50
         %52 = OpLabel
         %60 = OpLoad %float %a
         %62 = OpLoad %float %a
         %64 = OpLoad %float %b
         %65 = OpExtInst %float %43 FSign %60
         %67 = OpExtInst %float %43 FAbs %62
         %66 = OpExtInst %float %43 Pow %67 %64
         %68 = OpFMul %float %65 %66
               OpStore %x_26 %68
               OpBranch %50
         %50 = OpLabel
         %69 = OpLoad %float %x_26
               OpReturnValue %69
               OpFunctionEnd
     %main_1 = OpFunction %void None %70
         %73 = OpLabel
      %index = OpVariable %_ptr_Function_int Function %76
        %a_1 = OpVariable %_ptr_Function_int Function %76
      %param = OpVariable %_ptr_Function_float Function %30
    %param_1 = OpVariable %_ptr_Function_float Function %30
         %82 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
         %83 = OpLoad %uint %82
         %84 = OpBitcast %int %83
               OpStore %index %84
               OpStore %a_1 %int_n10
         %86 = OpLoad %int %index
               OpStore %param %float_n4
               OpStore %param_1 %float_n3
         %89 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1
         %93 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %86
               OpStore %93 %89
               OpReturn
               OpFunctionEnd
 %main_inner = OpFunction %void None %94
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
         %97 = OpLabel
               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
         %98 = OpFunctionCall %void %main_1
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %70
        %100 = OpLabel
        %102 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
        %101 = OpFunctionCall %void %main_inner %102
               OpReturn
               OpFunctionEnd
