OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color
               OpExecutionMode %main OriginUpperLeft
               OpSource ESSL 310
               OpName %main "main"
               OpName %func_i1_ "func(i1;"
               OpName %a "a"
               OpName %b "b"
               OpName %data "data"
               OpName %gl_FragCoord "gl_FragCoord"
               OpName %temp "temp"
               OpName %i "i"
               OpName %i_0 "i"
               OpName %param "param"
               OpName %param_0 "param"
               OpName %_GLF_color "_GLF_color"
               OpDecorate %gl_FragCoord BuiltIn FragCoord
               OpDecorate %_GLF_color Location 0
       %void = OpTypeVoid
         %15 = OpTypeFunction %void
        %int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
      %float = OpTypeFloat 32
         %19 = OpTypeFunction %float %_ptr_Function_int
      %int_0 = OpConstant %int 0
       %uint = OpTypeInt 32 0
     %uint_9 = OpConstant %uint 9
%_arr_int_uint_9 = OpTypeArray %int %uint_9
%_ptr_Private__arr_int_uint_9 = OpTypePointer Private %_arr_int_uint_9
       %data = OpVariable %_ptr_Private__arr_int_uint_9 Private
      %int_5 = OpConstant %int 5
%_ptr_Private_int = OpTypePointer Private %int
      %int_2 = OpConstant %int 2
      %int_4 = OpConstant %int 4
      %int_6 = OpConstant %int 6
      %int_8 = OpConstant %int 8
    %v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
     %uint_0 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float
    %float_0 = OpConstant %float 0
       %bool = OpTypeBool
     %uint_7 = OpConstant %uint 7
%_arr_int_uint_7 = OpTypeArray %int %uint_7
%_ptr_Private__arr_int_uint_7 = OpTypePointer Private %_arr_int_uint_7
       %temp = OpVariable %_ptr_Private__arr_int_uint_7 Private
      %int_3 = OpConstant %int 3
      %int_1 = OpConstant %int 1
    %float_1 = OpConstant %float 1
%_ptr_Output_v4float = OpTypePointer Output %v4float
 %_GLF_color = OpVariable %_ptr_Output_v4float Output
         %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %45 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
       %main = OpFunction %void None %15
         %46 = OpLabel
        %i_0 = OpVariable %_ptr_Function_int Function
      %param = OpVariable %_ptr_Function_int Function
    %param_0 = OpVariable %_ptr_Function_int Function
               OpStore %i_0 %int_0
               OpBranch %47
         %47 = OpLabel
               OpLoopMerge %48 %49 None
               OpBranch %50
         %50 = OpLabel
         %51 = OpLoad %int %i_0
         %52 = OpSLessThan %bool %51 %int_6
               OpBranchConditional %52 %53 %48
         %53 = OpLabel
         %54 = OpLoad %int %i_0
               OpStore %param %54
         %55 = OpFunctionCall %float %func_i1_ %param
         %56 = OpLoad %int %i_0
               OpStore %param_0 %56
         %57 = OpFunctionCall %float %func_i1_ %param_0
         %58 = OpFOrdEqual %bool %57 %float_1
               OpSelectionMerge %59 None
               OpBranchConditional %58 %60 %61
         %60 = OpLabel
               OpStore %_GLF_color %44
               OpBranch %59
         %61 = OpLabel
               OpStore %_GLF_color %45
               OpBranch %59
         %59 = OpLabel
               OpBranch %49
         %49 = OpLabel
         %62 = OpLoad %int %i_0
         %63 = OpIAdd %int %62 %int_1
               OpStore %i_0 %63
               OpBranch %47
         %48 = OpLabel
               OpReturn
               OpFunctionEnd
   %func_i1_ = OpFunction %float None %19
          %a = OpFunctionParameter %_ptr_Function_int
         %64 = OpLabel
          %b = OpVariable %_ptr_Function_int Function
          %i = OpVariable %_ptr_Function_int Function
               OpStore %b %int_0
         %65 = OpAccessChain %_ptr_Private_int %data %int_0
               OpStore %65 %int_5
         %66 = OpAccessChain %_ptr_Private_int %data %int_2
               OpStore %66 %int_0
         %67 = OpAccessChain %_ptr_Private_int %data %int_4
               OpStore %67 %int_0
         %68 = OpAccessChain %_ptr_Private_int %data %int_6
               OpStore %68 %int_0
         %69 = OpAccessChain %_ptr_Private_int %data %int_8
               OpStore %69 %int_0
         %70 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
         %71 = OpLoad %float %70
         %72 = OpFOrdGreaterThanEqual %bool %71 %float_0
               OpSelectionMerge %73 None
               OpBranchConditional %72 %74 %73
         %74 = OpLabel
               OpBranch %75
         %75 = OpLabel
               OpLoopMerge %76 %77 None
               OpBranch %78
         %78 = OpLabel
         %79 = OpLoad %int %b
         %80 = OpLoad %int %a
         %81 = OpSLessThanEqual %bool %79 %80
               OpBranchConditional %81 %82 %76
         %82 = OpLabel
         %83 = OpLoad %int %b
         %84 = OpSLessThanEqual %bool %83 %int_5
               OpSelectionMerge %85 None
               OpBranchConditional %84 %86 %85
         %86 = OpLabel
         %87 = OpLoad %int %b
         %88 = OpLoad %int %b
         %89 = OpAccessChain %_ptr_Private_int %data %88
         %90 = OpLoad %int %89
         %91 = OpAccessChain %_ptr_Private_int %temp %87
               OpStore %91 %90
         %92 = OpLoad %int %b
         %93 = OpIAdd %int %92 %int_2
               OpStore %b %93
               OpBranch %85
         %85 = OpLabel
               OpBranch %77
         %77 = OpLabel
               OpBranch %75
         %76 = OpLabel
               OpBranch %73
         %73 = OpLabel
               OpStore %i %int_0
               OpBranch %94
         %94 = OpLabel
               OpLoopMerge %95 %96 None
               OpBranch %97
         %97 = OpLabel
         %98 = OpLoad %int %i
         %99 = OpSLessThan %bool %98 %int_3
               OpBranchConditional %99 %100 %95
        %100 = OpLabel
        %101 = OpLoad %int %i
        %102 = OpAccessChain %_ptr_Private_int %temp %int_0
        %103 = OpLoad %int %102
        %104 = OpIAdd %int %103 %int_1
        %105 = OpAccessChain %_ptr_Private_int %data %101
               OpStore %105 %104
               OpBranch %96
         %96 = OpLabel
        %106 = OpLoad %int %i
        %107 = OpIAdd %int %106 %int_1
               OpStore %i %107
               OpBranch %94
         %95 = OpLabel
        %108 = OpAccessChain %_ptr_Private_int %temp %int_0
        %109 = OpLoad %int %108
        %110 = OpIEqual %bool %109 %int_5
               OpSelectionMerge %111 None
               OpBranchConditional %110 %112 %111
        %112 = OpLabel
        %113 = OpAccessChain %_ptr_Private_int %data %int_0
        %114 = OpLoad %int %113
        %115 = OpIEqual %bool %114 %int_6
               OpBranch %111
        %111 = OpLabel
        %116 = OpPhi %bool %110 %95 %115 %112
               OpSelectionMerge %117 None
               OpBranchConditional %116 %118 %119
        %118 = OpLabel
               OpReturnValue %float_1
        %119 = OpLabel
               OpReturnValue %float_0
        %117 = OpLabel
               OpUnreachable
               OpFunctionEnd