; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 58
; Schema: 0
               OpCapability Shader
               OpCapability ClipDistance
               OpCapability CullDistance
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Vertex %4 "main" %52 %output
               OpSource GLSL 450
               OpName %4 "main"
               OpName %9 "pos"
               OpName %50 "gl_PerVertex"
               OpMemberName %50 0 "gl_Position"
               OpMemberName %50 1 "gl_PointSize"
               OpMemberName %50 2 "gl_ClipDistance"
               OpMemberName %50 3 "gl_CullDistance"
               OpName %52 ""
               OpDecorate %13 SpecId 201
               OpDecorate %24 SpecId 202
               OpMemberDecorate %50 0 BuiltIn Position
               OpMemberDecorate %50 1 BuiltIn PointSize
               OpMemberDecorate %50 2 BuiltIn ClipDistance
               OpMemberDecorate %50 3 BuiltIn CullDistance
               OpDecorate %50 Block
               OpDecorate %57 SpecId 200
			   OpDecorate %output Flat
			   OpDecorate %output Location 0
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 4
          %8 = OpTypePointer Function %7
         %10 = OpConstant %6 0
         %11 = OpConstantComposite %7 %10 %10 %10 %10
         %12 = OpTypeInt 32 1
		 %int_ptr = OpTypePointer Output %12
         %13 = OpSpecConstant %12 -10
         %14 = OpConstant %12 2
         %15 = OpSpecConstantOp %12 IAdd %13 %14
         %17 = OpTypeInt 32 0
         %18 = OpConstant %17 1
         %19 = OpTypePointer Function %6
         %24 = OpSpecConstant %17 100
         %25 = OpConstant %17 5
         %26 = OpSpecConstantOp %17 UMod %24 %25
         %28 = OpConstant %17 2
         %33 = OpConstant %12 20
         %34 = OpConstant %12 30
      %int_3 = OpConstant %12 -3
        %bar = OpSpecConstantOp %12 SRem %13 %int_3
         %35 = OpTypeVector %12 4
         %36 = OpSpecConstantComposite %35 %33 %34 %15 %bar
         %40 = OpTypeVector %12 2
         %41 = OpSpecConstantOp %40 VectorShuffle %36 %36 1 0
		 %foo = OpSpecConstantOp %12 CompositeExtract %36 1
         %42 = OpTypeVector %6 2
         %49 = OpTypeArray %6 %18
         %50 = OpTypeStruct %7 %6 %49 %49
         %51 = OpTypePointer Output %50
         %52 = OpVariable %51 Output
		 %output = OpVariable %int_ptr Output
         %53 = OpConstant %12 0
         %55 = OpTypePointer Output %7
         %57 = OpSpecConstant %6 3.14159
          %4 = OpFunction %2 None %3
          %5 = OpLabel
          %9 = OpVariable %8 Function
               OpStore %9 %11
         %16 = OpConvertSToF %6 %15
         %20 = OpAccessChain %19 %9 %18
         %21 = OpLoad %6 %20
         %22 = OpFAdd %6 %21 %16
         %23 = OpAccessChain %19 %9 %18
               OpStore %23 %22
         %27 = OpConvertUToF %6 %26
         %29 = OpAccessChain %19 %9 %28
         %30 = OpLoad %6 %29
         %31 = OpFAdd %6 %30 %27
         %32 = OpAccessChain %19 %9 %28
               OpStore %32 %31
         %37 = OpConvertSToF %7 %36
         %38 = OpLoad %7 %9
         %39 = OpFAdd %7 %38 %37
               OpStore %9 %39
         %43 = OpConvertSToF %42 %41
         %44 = OpLoad %7 %9
         %45 = OpVectorShuffle %42 %44 %44 0 1
         %46 = OpFAdd %42 %45 %43
         %47 = OpLoad %7 %9
         %48 = OpVectorShuffle %7 %47 %46 4 5 2 3
               OpStore %9 %48
         %54 = OpLoad %7 %9
         %56 = OpAccessChain %55 %52 %53
               OpStore %56 %54
			   OpStore %output %foo
               OpReturn
               OpFunctionEnd
