; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 83
; Schema: 0
               OpCapability Geometry
               OpCapability GeometryPointSize
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Geometry %4 "main" %15 %40 %74 %77
               OpExecutionMode %4 InputPoints
               OpExecutionMode %4 Invocations 1
               OpExecutionMode %4 OutputTriangleStrip
               OpExecutionMode %4 OutputVertices 4
               OpSource GLSL 450
               OpName %4 "main"
               OpName %9 "pos"
               OpName %10 "gl_PerVertex"
               OpMemberName %10 0 "gl_Position"
               OpMemberName %10 1 "gl_PointSize"
               OpName %15 "gl_in"
               OpName %22 "psize"
               OpName %28 "i"
               OpName %38 "gl_PerVertex"
               OpMemberName %38 0 "gl_Position"
               OpMemberName %38 1 "gl_PointSize"
               OpName %40 ""
               OpName %55 "indexable"
               OpName %74 "out_interpolators"
               OpName %77 "in_interpolators"
               OpMemberDecorate %10 0 BuiltIn Position
               OpMemberDecorate %10 1 BuiltIn PointSize
               OpDecorate %10 Block
               OpMemberDecorate %38 0 BuiltIn Position
               OpMemberDecorate %38 1 BuiltIn PointSize
               OpDecorate %38 Block
               OpDecorate %74 Location 0
               OpDecorate %77 Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 4
          %8 = OpTypePointer Function %7
         %10 = OpTypeStruct %7 %6
         %11 = OpTypeInt 32 0
         %12 = OpConstant %11 1
         %13 = OpTypeArray %10 %12
         %14 = OpTypePointer Input %13
         %15 = OpVariable %14 Input
         %16 = OpTypeInt 32 1
         %17 = OpConstant %16 0
         %18 = OpTypePointer Input %7
         %21 = OpTypePointer Function %6
         %23 = OpConstant %16 1
         %24 = OpTypePointer Input %6
         %27 = OpTypePointer Function %16
         %35 = OpConstant %16 4
         %36 = OpTypeBool
         %38 = OpTypeStruct %7 %6
         %39 = OpTypePointer Output %38
         %40 = OpVariable %39 Output
         %41 = OpTypeVector %6 2
         %44 = OpConstant %11 4
         %45 = OpTypeArray %41 %44
         %46 = OpConstant %6 -1
         %47 = OpConstant %6 1
         %48 = OpConstantComposite %41 %46 %47
         %49 = OpConstantComposite %41 %47 %47
         %50 = OpConstantComposite %41 %46 %46
         %51 = OpConstantComposite %41 %47 %46
         %52 = OpConstantComposite %45 %48 %49 %50 %51
         %54 = OpTypePointer Function %45
         %56 = OpTypePointer Function %41
         %69 = OpTypePointer Output %7
         %71 = OpConstant %11 16
         %72 = OpTypeArray %7 %71
         %73 = OpTypePointer Output %72
         %74 = OpVariable %73 Output
         %75 = OpTypeArray %72 %12
         %76 = OpTypePointer Input %75
         %77 = OpVariable %76 Input
         %78 = OpTypePointer Input %72
          %4 = OpFunction %2 None %3
          %5 = OpLabel
          %9 = OpVariable %8 Function
         %22 = OpVariable %21 Function
         %28 = OpVariable %27 Function
         %55 = OpVariable %54 Function
         %19 = OpAccessChain %18 %15 %17 %17
         %20 = OpLoad %7 %19
               OpStore %9 %20
         %25 = OpAccessChain %24 %15 %17 %23
         %26 = OpLoad %6 %25
               OpStore %22 %26
               OpStore %28 %17
               OpBranch %29
         %29 = OpLabel
               OpLoopMerge %31 %32 None
               OpBranch %33
         %33 = OpLabel
         %34 = OpLoad %16 %28
         %37 = OpSLessThan %36 %34 %35
               OpBranchConditional %37 %30 %31
         %30 = OpLabel
         %42 = OpLoad %7 %9
         %43 = OpVectorShuffle %41 %42 %42 0 1
         %53 = OpLoad %16 %28
               OpStore %55 %52
         %57 = OpAccessChain %56 %55 %53
         %58 = OpLoad %41 %57
         %59 = OpLoad %6 %22
         %60 = OpVectorTimesScalar %41 %58 %59
         %61 = OpFAdd %41 %43 %60
         %62 = OpLoad %7 %9
         %63 = OpVectorShuffle %41 %62 %62 2 3
         %64 = OpCompositeExtract %6 %61 0
         %65 = OpCompositeExtract %6 %61 1
         %66 = OpCompositeExtract %6 %63 0
         %67 = OpCompositeExtract %6 %63 1
         %68 = OpCompositeConstruct %7 %64 %65 %66 %67
         %70 = OpAccessChain %69 %40 %17
               OpStore %70 %68
         %79 = OpAccessChain %78 %77 %17
         %80 = OpLoad %72 %79
               OpStore %74 %80
               OpEmitVertex
               OpBranch %32
         %32 = OpLabel
         %81 = OpLoad %16 %28
         %82 = OpIAdd %16 %81 %23
               OpStore %28 %82
               OpBranch %29
         %31 = OpLabel
               OpEndPrimitive
               OpReturn
               OpFunctionEnd
