; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 6
; Bound: 118
; Schema: 0
               OpCapability Geometry
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Geometry %main "main" %gl_in %point_size %_ %out_interpolators %in_interpolators %point_coord %in_point_coord_unused
               OpExecutionMode %main InputPoints
               OpExecutionMode %main Invocations 1
               OpExecutionMode %main OutputTriangleStrip
               OpExecutionMode %main OutputVertices 4
               OpSource GLSL 450
               OpSourceExtension "GL_ARB_explicit_attrib_location"
               OpSourceExtension "GL_ARB_separate_shader_objects"
               OpSourceExtension "GL_ARB_shading_language_420pack"
               OpName %main "main"
               OpName %gl_PerVertex "gl_PerVertex"
               OpMemberName %gl_PerVertex 0 "gl_Position"
               OpName %gl_in "gl_in"
               OpName %push_consts_type "push_consts_type"
               OpMemberName %push_consts_type 0 "window_scale"
               OpMemberName %push_consts_type 1 "vtx_fmt"
               OpMemberName %push_consts_type 2 "point_size"
               OpMemberName %push_consts_type 3 "alpha_test"
               OpMemberName %push_consts_type 4 "ps_param_gen"
               OpName %push_constants "push_constants"
               OpName %point_size "point_size"
               OpName %gl_PerVertex_0 "gl_PerVertex"
               OpMemberName %gl_PerVertex_0 0 "gl_Position"
               OpName %_ ""
               OpName %indexable "indexable"
               OpName %out_interpolators "out_interpolators"
               OpName %in_interpolators "in_interpolators"
               OpName %point_coord "point_coord"
               OpName %indexable_0 "indexable"
               OpName %in_point_coord_unused "in_point_coord_unused"
               OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
               OpDecorate %gl_PerVertex Block
               OpMemberDecorate %push_consts_type 0 Offset 0
               OpMemberDecorate %push_consts_type 1 Offset 16
               OpMemberDecorate %push_consts_type 2 Offset 32
               OpMemberDecorate %push_consts_type 3 Offset 48
               OpMemberDecorate %push_consts_type 4 Offset 64
               OpDecorate %push_consts_type Block
               OpDecorate %point_size Location 17
               OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
               OpDecorate %gl_PerVertex_0 Block
               OpDecorate %out_interpolators Location 0
               OpDecorate %in_interpolators Location 0
               OpDecorate %point_coord Location 16
               OpDecorate %in_point_coord_unused Location 16
       %void = OpTypeVoid
          %3 = OpTypeFunction %void
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
%gl_PerVertex = OpTypeStruct %v4float
       %uint = OpTypeInt 32 0
     %uint_1 = OpConstant %uint 1
%_arr_gl_PerVertex_uint_1 = OpTypeArray %gl_PerVertex %uint_1
%_ptr_Input__arr_gl_PerVertex_uint_1 = OpTypePointer Input %_arr_gl_PerVertex_uint_1
      %gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_uint_1 Input
        %int = OpTypeInt 32 1
      %int_0 = OpConstant %int 0
%_ptr_Input_v4float = OpTypePointer Input %v4float
    %v2float = OpTypeVector %float 2
%_ptr_Function_v2float = OpTypePointer Function %v2float
%push_consts_type = OpTypeStruct %v4float %v4float %v4float %v4float %uint
%_ptr_PushConstant_push_consts_type = OpTypePointer PushConstant %push_consts_type
%push_constants = OpVariable %_ptr_PushConstant_push_consts_type PushConstant
      %int_2 = OpConstant %int 2
%_ptr_PushConstant_v4float = OpTypePointer PushConstant %v4float
%_arr_float_uint_1 = OpTypeArray %float %uint_1
%_ptr_Input__arr_float_uint_1 = OpTypePointer Input %_arr_float_uint_1
 %point_size = OpVariable %_ptr_Input__arr_float_uint_1 Input
%_ptr_Input_float = OpTypePointer Input %float
    %float_0 = OpConstant %float 0
       %bool = OpTypeBool
      %int_4 = OpConstant %int 4
%gl_PerVertex_0 = OpTypeStruct %v4float
%_ptr_Output_gl_PerVertex_0 = OpTypePointer Output %gl_PerVertex_0
          %_ = OpVariable %_ptr_Output_gl_PerVertex_0 Output
     %uint_4 = OpConstant %uint 4
%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4
   %float_n1 = OpConstant %float -1
    %float_1 = OpConstant %float 1
         %70 = OpConstantComposite %v2float %float_n1 %float_1
         %71 = OpConstantComposite %v2float %float_1 %float_1
         %72 = OpConstantComposite %v2float %float_n1 %float_n1
         %73 = OpConstantComposite %v2float %float_1 %float_n1
         %74 = OpConstantComposite %_arr_v2float_uint_4 %70 %71 %72 %73
%_ptr_Function__arr_v2float_uint_4 = OpTypePointer Function %_arr_v2float_uint_4
%_ptr_Output_v4float = OpTypePointer Output %v4float
    %uint_16 = OpConstant %uint 16
%_arr_v4float_uint_16 = OpTypeArray %v4float %uint_16
%_ptr_Output__arr_v4float_uint_16 = OpTypePointer Output %_arr_v4float_uint_16
%out_interpolators = OpVariable %_ptr_Output__arr_v4float_uint_16 Output
%_arr__arr_v4float_uint_16_uint_1 = OpTypeArray %_arr_v4float_uint_16 %uint_1
%_ptr_Input__arr__arr_v4float_uint_16_uint_1 = OpTypePointer Input %_arr__arr_v4float_uint_16_uint_1
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_uint_16_uint_1 Input
%_ptr_Input__arr_v4float_uint_16 = OpTypePointer Input %_arr_v4float_uint_16
%_ptr_Output_v2float = OpTypePointer Output %v2float
%point_coord = OpVariable %_ptr_Output_v2float Output
        %108 = OpConstantComposite %v2float %float_0 %float_0
      %int_1 = OpConstant %int 1
%_arr_v2float_uint_1 = OpTypeArray %v2float %uint_1
%_ptr_Input__arr_v2float_uint_1 = OpTypePointer Input %_arr_v2float_uint_1
%in_point_coord_unused = OpVariable %_ptr_Input__arr_v2float_uint_1 Input
       %main = OpFunction %void None %3
          %5 = OpLabel
  %indexable = OpVariable %_ptr_Function__arr_v2float_uint_4 Function
%indexable_0 = OpVariable %_ptr_Function__arr_v2float_uint_4 Function
         %19 = OpAccessChain %_ptr_Input_v4float %gl_in %int_0 %int_0
         %20 = OpLoad %v4float %19
         %29 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %int_2
         %30 = OpLoad %v4float %29
         %31 = OpVectorShuffle %v2float %30 %30 0 1
         %36 = OpAccessChain %_ptr_Input_float %point_size %int_0
         %37 = OpLoad %float %36
         %40 = OpFOrdGreaterThan %bool %37 %float_0
               OpSelectionMerge %42 None
               OpBranchConditional %40 %41 %42
         %41 = OpLabel
         %45 = OpCompositeConstruct %v2float %37 %37
               OpBranch %42
         %42 = OpLabel
        %116 = OpPhi %v2float %31 %5 %45 %41
         %46 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %int_0
         %47 = OpLoad %v4float %46
         %48 = OpVectorShuffle %v2float %47 %47 2 3
         %50 = OpFDiv %v2float %116 %48
               OpBranch %53
         %53 = OpLabel
        %117 = OpPhi %int %int_0 %42 %112 %54
         %60 = OpSLessThan %bool %117 %int_4
               OpLoopMerge %55 %54 None
               OpBranchConditional %60 %54 %55
         %54 = OpLabel
         %65 = OpVectorShuffle %v2float %20 %20 0 1
               OpStore %indexable %74
         %78 = OpAccessChain %_ptr_Function_v2float %indexable %117
         %79 = OpLoad %v2float %78
         %81 = OpFMul %v2float %79 %50
         %82 = OpFAdd %v2float %65 %81
         %85 = OpCompositeExtract %float %82 0
         %86 = OpCompositeExtract %float %82 1
         %87 = OpCompositeExtract %float %20 2
         %88 = OpCompositeExtract %float %20 3
         %89 = OpCompositeConstruct %v4float %85 %86 %87 %88
         %91 = OpAccessChain %_ptr_Output_v4float %_ %int_0
               OpStore %91 %89
        %100 = OpAccessChain %_ptr_Input__arr_v4float_uint_16 %in_interpolators %int_0
        %101 = OpLoad %_arr_v4float_uint_16 %100
               OpStore %out_interpolators %101
               OpStore %indexable_0 %74
        %106 = OpAccessChain %_ptr_Function_v2float %indexable_0 %117
        %107 = OpLoad %v2float %106
        %109 = OpExtInst %v2float %1 FMax %107 %108
               OpStore %point_coord %109
               OpEmitVertex
        %112 = OpIAdd %int %117 %int_1
               OpBranch %53
         %55 = OpLabel
               OpEndPrimitive
               OpReturn
               OpFunctionEnd
