; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 48
; Schema: 0
               OpCapability Shader
               OpCapability ClipDistance
               OpCapability CullDistance
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Vertex %4 "main" %13 %25 %41 %42 %44 %46
               OpSource GLSL 450
               OpName %4 "main"
               OpName %11 "gl_PerVertex"
               OpMemberName %11 0 "gl_Position"
               OpMemberName %11 1 "gl_PointSize"
               OpMemberName %11 2 "gl_ClipDistance"
               OpMemberName %11 3 "gl_CullDistance"
               OpName %13 ""
               OpName %17 "PushConstants"
               OpMemberName %17 0 "projection_matrix"
               OpMemberName %17 1 "restrict_texture_samples"
               OpName %19 "push_constants"
               OpName %25 "in_pos"
               OpName %41 "vtx_uv"
               OpName %42 "in_uv"
               OpName %44 "vtx_color"
               OpName %46 "in_color"
               OpMemberDecorate %11 0 BuiltIn Position
               OpMemberDecorate %11 1 BuiltIn PointSize
               OpMemberDecorate %11 2 BuiltIn ClipDistance
               OpMemberDecorate %11 3 BuiltIn CullDistance
               OpDecorate %11 Block
               OpMemberDecorate %17 0 ColMajor
               OpMemberDecorate %17 0 Offset 0
               OpMemberDecorate %17 0 MatrixStride 16
               OpMemberDecorate %17 1 Offset 64
               OpDecorate %17 Block
               OpDecorate %19 DescriptorSet 0
               OpDecorate %25 Location 0
               OpDecorate %41 Location 0
               OpDecorate %42 Location 1
               OpDecorate %44 Location 1
               OpDecorate %46 Location 2
          %2 = OpTypeVoid
          %3 = OpTypeFunction %2
          %6 = OpTypeFloat 32
          %7 = OpTypeVector %6 4
          %8 = OpTypeInt 32 0
          %9 = OpConstant %8 1
         %10 = OpTypeArray %6 %9
         %11 = OpTypeStruct %7 %6 %10 %10
         %12 = OpTypePointer Output %11
         %13 = OpVariable %12 Output
         %14 = OpTypeInt 32 1
         %15 = OpConstant %14 0
         %16 = OpTypeMatrix %7 4
         %17 = OpTypeStruct %16 %14
         %18 = OpTypePointer PushConstant %17
         %19 = OpVariable %18 PushConstant
         %20 = OpTypePointer PushConstant %16
         %23 = OpTypeVector %6 2
         %24 = OpTypePointer Input %23
         %25 = OpVariable %24 Input
         %27 = OpConstant %6 0
         %28 = OpConstant %6 1
         %33 = OpTypePointer Output %7
         %35 = OpTypePointer Output %6
         %40 = OpTypePointer Output %23
         %41 = OpVariable %40 Output
         %42 = OpVariable %24 Input
         %44 = OpVariable %33 Output
         %45 = OpTypePointer Input %7
         %46 = OpVariable %45 Input
          %4 = OpFunction %2 None %3
          %5 = OpLabel
         %21 = OpAccessChain %20 %19 %15
         %22 = OpLoad %16 %21
         %26 = OpLoad %23 %25
         %29 = OpCompositeExtract %6 %26 0
         %30 = OpCompositeExtract %6 %26 1
         %31 = OpCompositeConstruct %7 %29 %30 %27 %28
         %32 = OpMatrixTimesVector %7 %22 %31
         %34 = OpAccessChain %33 %13 %15
               OpStore %34 %32
         %36 = OpAccessChain %35 %13 %15 %9
         %37 = OpLoad %6 %36
         %38 = OpFNegate %6 %37
         %39 = OpAccessChain %35 %13 %15 %9
               OpStore %39 %38
         %43 = OpLoad %23 %42
               OpStore %41 %43
         %47 = OpLoad %7 %46
               OpStore %44 %47
               OpReturn
               OpFunctionEnd
