               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint GLCompute %4 "main" %15 %110
               OpExecutionMode %4 LocalSize 1 1 1
               OpSource ESSL 310
               OpName %4 "main"
               OpName %6 "f1("
               OpName %8 "f2("
               OpName %12 "x"
               OpName %15 "gl_GlobalInvocationID"
               OpName %20 "z"
               OpName %26 "i"
               OpName %40 "BufferOut"
               OpMemberName %40 0 "o_uv4"
               OpMemberName %40 1 "o_v3"
               OpMemberName %40 2 "o_i"
               OpName %42 ""
               OpName %63 "image2"
               OpName %79 "image"
               OpName %89 "i"
               OpName %110 "gl_LocalInvocationID"
               OpName %127 "BufferIn"
               OpMemberName %127 0 "i_u"
               OpMemberName %127 1 "i_v4"
               OpMemberName %127 2 "i_f"
               OpName %129 ""
               OpDecorate %15 BuiltIn GlobalInvocationId
               OpMemberDecorate %40 0 Offset 0
               OpMemberDecorate %40 1 Offset 16
               OpMemberDecorate %40 2 Offset 28
               OpDecorate %40 BufferBlock
               OpDecorate %42 DescriptorSet 0
               OpDecorate %42 Binding 1
               OpDecorate %63 DescriptorSet 0
               OpDecorate %63 Binding 3
               OpDecorate %79 DescriptorSet 0
               OpDecorate %79 Binding 2
               OpDecorate %110 BuiltIn LocalInvocationId
               OpMemberDecorate %127 0 Offset 0
               OpMemberDecorate %127 1 RowMajor
               OpMemberDecorate %127 1 Offset 16
               OpMemberDecorate %127 1 MatrixStride 16
               OpMemberDecorate %127 2 Offset 80
               OpDecorate %127 Block
               OpDecorate %129 DescriptorSet 0
               OpDecorate %129 Binding 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
         %10 = OpTypeInt 32 0
         %11 = OpTypePointer Function %10
         %13 = OpTypeVector %10 3
         %14 = OpTypePointer Input %13
         %15 = OpVariable %14 Input
         %16 = OpConstant %10 0
         %17 = OpTypePointer Input %10
         %21 = OpConstant %10 1
         %24 = OpTypeInt 32 1
         %25 = OpTypePointer Function %24
         %27 = OpConstant %24 0
         %34 = OpConstant %24 2
         %35 = OpTypeBool
         %37 = OpTypeVector %10 4
         %38 = OpTypeFloat 32
         %39 = OpTypeVector %38 3
         %40 = OpTypeStruct %37 %39 %24
         %41 = OpTypePointer Uniform %40
         %42 = OpVariable %41 Uniform
         %46 = OpTypeVector %10 2
         %48 = OpTypePointer Uniform %37
         %53 = OpTypePointer Uniform %10
         %59 = OpConstant %24 1
         %61 = OpTypeImage %24 2D 0 0 0 2 R32i
         %62 = OpTypePointer UniformConstant %61
         %63 = OpVariable %62 UniformConstant
         %69 = OpTypeVector %24 2
         %71 = OpTypeVector %24 4
         %74 = OpTypePointer Uniform %24
         %76 = OpConstant %10 2
         %77 = OpConstant %10 3400
         %78 = OpConstant %10 264
         %79 = OpVariable %62 UniformConstant
         %96 = OpConstant %24 3
        %103 = OpConstantComposite %69 %27 %27
        %107 = OpTypePointer Uniform %38
        %110 = OpVariable %14 Input
        %113 = OpTypeVector %38 2
        %125 = OpTypeVector %38 4
        %126 = OpTypeMatrix %125 4
        %127 = OpTypeStruct %10 %126 %38
        %128 = OpTypePointer Uniform %127
        %129 = OpVariable %128 Uniform
          %4 = OpFunction %2 None %3
          %5 = OpLabel
        %123 = OpFunctionCall %2 %8
        %124 = OpFunctionCall %2 %6
               OpReturn
               OpFunctionEnd
          %6 = OpFunction %2 None %3
          %7 = OpLabel
         %12 = OpVariable %11 Function
         %20 = OpVariable %11 Function
         %26 = OpVariable %25 Function
         %18 = OpAccessChain %17 %15 %16
         %19 = OpLoad %10 %18
               OpStore %12 %19
         %22 = OpAccessChain %17 %15 %21
         %23 = OpLoad %10 %22
               OpStore %20 %23
               OpStore %26 %27
               OpBranch %28
         %28 = OpLabel
               OpLoopMerge %30 %31 None
               OpBranch %32
         %32 = OpLabel
         %33 = OpLoad %24 %26
         %36 = OpSLessThan %35 %33 %34
               OpBranchConditional %36 %29 %30
         %29 = OpLabel
         %43 = OpLoad %10 %12
         %44 = OpLoad %10 %20
         %45 = OpIAdd %10 %43 %44
         %47 = OpCompositeConstruct %46 %45 %45
         %49 = OpAccessChain %48 %42 %27
         %50 = OpLoad %37 %49
         %51 = OpVectorShuffle %46 %50 %50 0 1
         %52 = OpIAdd %46 %51 %47
         %54 = OpAccessChain %53 %42 %27 %16
         %55 = OpCompositeExtract %10 %52 0
               OpStore %54 %55
         %56 = OpAccessChain %53 %42 %27 %21
         %57 = OpCompositeExtract %10 %52 1
               OpStore %56 %57
               OpBranch %31
         %31 = OpLabel
         %58 = OpLoad %24 %26
         %60 = OpIAdd %24 %58 %59
               OpStore %26 %60
               OpBranch %28
         %30 = OpLabel
         %64 = OpLoad %61 %63
         %65 = OpLoad %10 %12
         %66 = OpBitcast %24 %65
         %67 = OpLoad %10 %20
         %68 = OpBitcast %24 %67
         %70 = OpCompositeConstruct %69 %66 %68
         %72 = OpImageRead %71 %64 %70
         %73 = OpCompositeExtract %24 %72 1
         %75 = OpAccessChain %74 %42 %34
               OpStore %75 %73
               OpMemoryBarrier %76 %77
               OpControlBarrier %76 %76 %78
         %80 = OpLoad %61 %79
         %81 = OpLoad %10 %20
         %82 = OpBitcast %24 %81
         %83 = OpLoad %10 %12
         %84 = OpBitcast %24 %83
         %85 = OpCompositeConstruct %69 %82 %84
         %86 = OpAccessChain %74 %42 %34
         %87 = OpLoad %24 %86
         %88 = OpCompositeConstruct %71 %87 %27 %27 %27
               OpImageWrite %80 %85 %88
               OpReturn
               OpFunctionEnd
          %8 = OpFunction %2 None %3
          %9 = OpLabel
         %89 = OpVariable %25 Function
               OpStore %89 %27
               OpBranch %90
         %90 = OpLabel
               OpLoopMerge %92 %93 None
               OpBranch %94
         %94 = OpLabel
         %95 = OpLoad %24 %89
         %97 = OpSLessThan %35 %95 %96
               OpBranchConditional %97 %91 %92
         %91 = OpLabel
         %98 = OpLoad %24 %89
         %99 = OpIEqual %35 %98 %27
               OpSelectionMerge %101 None
               OpBranchConditional %99 %100 %109
        %100 = OpLabel
        %102 = OpLoad %61 %63
        %104 = OpImageRead %71 %102 %103
        %105 = OpCompositeExtract %24 %104 0
        %106 = OpConvertSToF %38 %105
        %108 = OpAccessChain %107 %42 %59 %16
               OpStore %108 %106
               OpBranch %101
        %109 = OpLabel
        %111 = OpLoad %13 %110
        %112 = OpConvertUToF %39 %111
        %114 = OpCompositeExtract %38 %112 0
        %115 = OpCompositeExtract %38 %112 1
        %116 = OpCompositeConstruct %113 %114 %115
        %117 = OpAccessChain %107 %42 %59 %21
        %118 = OpCompositeExtract %38 %116 0
               OpStore %117 %118
        %119 = OpAccessChain %107 %42 %59 %76
        %120 = OpCompositeExtract %38 %116 1
               OpStore %119 %120
               OpBranch %101
        %101 = OpLabel
               OpBranch %93
         %93 = OpLabel
        %121 = OpLoad %24 %89
        %122 = OpIAdd %24 %121 %59
               OpStore %89 %122
               OpBranch %90
         %92 = OpLabel
               OpReturn
               OpFunctionEnd

