; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 116
; 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
               OpName %main "main"
               OpName %pos "pos"
               OpName %gl_PerVertex "gl_PerVertex"
               OpMemberName %gl_PerVertex 0 "gl_Position"
               OpName %gl_in "gl_in"
               OpName %window_scaled_psize "window_scaled_psize"
               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 %i "i"
               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
%_ptr_Function_v4float = OpTypePointer Function %v4float
%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
%_ptr_Function_int = OpTypePointer Function %int
      %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
        %pos = OpVariable %_ptr_Function_v4float Function
%window_scaled_psize = OpVariable %_ptr_Function_v2float Function
          %i = OpVariable %_ptr_Function_int Function
  %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
               OpStore %pos %20
         %29 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %int_2
         %30 = OpLoad %v4float %29
         %31 = OpVectorShuffle %v2float %30 %30 0 1
               OpStore %window_scaled_psize %31
         %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
         %43 = OpAccessChain %_ptr_Input_float %point_size %int_0
         %44 = OpLoad %float %43
         %45 = OpCompositeConstruct %v2float %44 %44
               OpStore %window_scaled_psize %45
               OpBranch %42
         %42 = OpLabel
         %46 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %int_0
         %47 = OpLoad %v4float %46
         %48 = OpVectorShuffle %v2float %47 %47 2 3
         %49 = OpLoad %v2float %window_scaled_psize
         %50 = OpFDiv %v2float %49 %48
               OpStore %window_scaled_psize %50
               OpStore %i %int_0
               OpBranch %53
         %53 = OpLabel
               OpLoopMerge %55 %56 None
               OpBranch %57
         %57 = OpLabel
         %58 = OpLoad %int %i
         %60 = OpSLessThan %bool %58 %int_4
               OpBranchConditional %60 %54 %55
         %54 = OpLabel
         %64 = OpLoad %v4float %pos
         %65 = OpVectorShuffle %v2float %64 %64 0 1
         %75 = OpLoad %int %i
               OpStore %indexable %74
         %78 = OpAccessChain %_ptr_Function_v2float %indexable %75
         %79 = OpLoad %v2float %78
         %80 = OpLoad %v2float %window_scaled_psize
         %81 = OpFMul %v2float %79 %80
         %82 = OpFAdd %v2float %65 %81
         %83 = OpLoad %v4float %pos
         %84 = OpVectorShuffle %v2float %83 %83 2 3
         %85 = OpCompositeExtract %float %82 0
         %86 = OpCompositeExtract %float %82 1
         %87 = OpCompositeExtract %float %84 0
         %88 = OpCompositeExtract %float %84 1
         %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
        %104 = OpLoad %int %i
               OpStore %indexable_0 %74
        %106 = OpAccessChain %_ptr_Function_v2float %indexable_0 %104
        %107 = OpLoad %v2float %106
        %109 = OpExtInst %v2float %1 FMax %107 %108
               OpStore %point_coord %109
               OpEmitVertex
               OpBranch %56
         %56 = OpLabel
        %110 = OpLoad %int %i
        %112 = OpIAdd %int %110 %int_1
               OpStore %i %112
               OpBranch %53
         %55 = OpLabel
               OpEndPrimitive
               OpReturn
               OpFunctionEnd
