; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 8
; Bound: 91
; Schema: 0
                            OpCapability Shader
                       %1 = OpExtInstImport "GLSL.std.450"
                            OpMemoryModel Logical GLSL450
                            OpEntryPoint Vertex %main "main" %position %__0 %vUV %uv %normal
                            OpSource GLSL 450
                            OpName %main "main"
                            OpName %q "q"
                            OpName %position "position"
                            OpName %p "p"
                            OpName %LeftOver "LeftOver"
                            OpMemberName %LeftOver 0 "worldViewProjection"
                            OpMemberName %LeftOver 1 "time"
                            OpMemberName %LeftOver 2 "test2"
                            OpMemberName %LeftOver 3 "test"
                            OpName %_ ""
                            OpName %gl_PerVertex "gl_PerVertex"
                            OpMemberName %gl_PerVertex 0 "gl_Position"
                            OpMemberName %gl_PerVertex 1 "gl_PointSize"
                            OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
                            OpMemberName %gl_PerVertex 3 "gl_CullDistance"
                            OpName %__0 ""
                            OpName %vUV "vUV"
                            OpName %uv "uv"
                            OpName %normal "normal"
                            OpDecorate %position Location 0
                            OpDecorate %_arr_mat4v4float_uint_2 ArrayStride 64
                            OpDecorate %_arr_float_uint_4 ArrayStride 16
                            OpMemberDecorate %LeftOver 0 ColMajor
                            OpMemberDecorate %LeftOver 0 Offset 0
                            OpMemberDecorate %LeftOver 0 MatrixStride 16
                            OpMemberDecorate %LeftOver 1 Offset 64
                            OpMemberDecorate %LeftOver 2 ColMajor
                            OpMemberDecorate %LeftOver 2 Offset 80
                            OpMemberDecorate %LeftOver 2 MatrixStride 16
                            OpMemberDecorate %LeftOver 3 Offset 208
                            OpDecorate %LeftOver Block
                            OpDecorate %_ DescriptorSet 2
                            OpDecorate %_ Binding 2
                            OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
                            OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
                            OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
                            OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
                            OpDecorate %gl_PerVertex Block
                            OpDecorate %vUV Location 0
                            OpDecorate %uv Location 2
                            OpDecorate %normal Location 1
                    %void = OpTypeVoid
                       %3 = OpTypeFunction %void
                   %float = OpTypeFloat 32
                 %v4float = OpTypeVector %float 4
   %_ptr_Function_v4float = OpTypePointer Function %v4float
                 %v3float = OpTypeVector %float 3
      %_ptr_Input_v3float = OpTypePointer Input %v3float
                %position = OpVariable %_ptr_Input_v3float Input
                 %float_1 = OpConstant %float 1
   %_ptr_Function_v3float = OpTypePointer Function %v3float
                    %uint = OpTypeInt 32 0
                  %uint_0 = OpConstant %uint 0
     %_ptr_Function_float = OpTypePointer Function %float
             %mat4v4float = OpTypeMatrix %v4float 4
                  %uint_2 = OpConstant %uint 2
 %_arr_mat4v4float_uint_2 = OpTypeArray %mat4v4float %uint_2
                  %uint_4 = OpConstant %uint 4
       %_arr_float_uint_4 = OpTypeArray %float %uint_4
                %LeftOver = OpTypeStruct %mat4v4float %float %_arr_mat4v4float_uint_2 %_arr_float_uint_4
   %_ptr_Uniform_LeftOver = OpTypePointer Uniform %LeftOver
                       %_ = OpVariable %_ptr_Uniform_LeftOver Uniform
                     %int = OpTypeInt 32 1
                   %int_3 = OpConstant %int 3
                   %int_0 = OpConstant %int 0
      %_ptr_Uniform_float = OpTypePointer Uniform %float
                  %uint_1 = OpConstant %uint 1
        %_ptr_Input_float = OpTypePointer Input %float
                   %int_1 = OpConstant %int 1
                 %float_4 = OpConstant %float 4
       %_arr_float_uint_1 = OpTypeArray %float %uint_1
            %gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
                     %__0 = OpVariable %_ptr_Output_gl_PerVertex Output
%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
     %_ptr_Output_v4float = OpTypePointer Output %v4float
                 %v2float = OpTypeVector %float 2
     %_ptr_Output_v2float = OpTypePointer Output %v2float
                     %vUV = OpVariable %_ptr_Output_v2float Output
      %_ptr_Input_v2float = OpTypePointer Input %v2float
                      %uv = OpVariable %_ptr_Input_v2float Input
                %float_n1 = OpConstant %float -1
       %_ptr_Output_float = OpTypePointer Output %float
                  %normal = OpVariable %_ptr_Input_v3float Input
                    %main = OpFunction %void None %3
                       %5 = OpLabel
                       %q = OpVariable %_ptr_Function_v4float Function
                       %p = OpVariable %_ptr_Function_v3float Function
                      %13 = OpLoad %v3float %position
                      %15 = OpCompositeExtract %float %13 0
                      %16 = OpCompositeExtract %float %13 1
                      %17 = OpCompositeExtract %float %13 2
                      %18 = OpCompositeConstruct %v4float %15 %16 %17 %float_1
                            OpStore %q %18
                      %21 = OpLoad %v4float %q
                      %22 = OpVectorShuffle %v3float %21 %21 0 1 2
                            OpStore %p %22
                      %26 = OpAccessChain %_ptr_Function_float %p %uint_0
                      %27 = OpLoad %float %26
                      %40 = OpAccessChain %_ptr_Uniform_float %_ %int_3 %int_0
                      %41 = OpLoad %float %40
                      %44 = OpAccessChain %_ptr_Input_float %position %uint_1
                      %45 = OpLoad %float %44
                      %46 = OpFMul %float %41 %45
                      %48 = OpAccessChain %_ptr_Uniform_float %_ %int_1
                      %49 = OpLoad %float %48
                      %50 = OpFAdd %float %46 %49
                      %51 = OpExtInst %float %1 Sin %50
                      %52 = OpFAdd %float %27 %51
                      %53 = OpAccessChain %_ptr_Function_float %p %uint_0
                            OpStore %53 %52
                      %54 = OpAccessChain %_ptr_Function_float %p %uint_1
                      %55 = OpLoad %float %54
                      %56 = OpAccessChain %_ptr_Uniform_float %_ %int_1
                      %57 = OpLoad %float %56
                      %59 = OpFAdd %float %57 %float_4
                      %60 = OpExtInst %float %1 Sin %59
                      %61 = OpFAdd %float %55 %60
                      %62 = OpAccessChain %_ptr_Function_float %p %uint_1
                            OpStore %62 %61
                      %68 = OpAccessChain %_ptr_Uniform_mat4v4float %_ %int_0
                      %69 = OpLoad %mat4v4float %68
                      %70 = OpLoad %v3float %p
                      %71 = OpCompositeExtract %float %70 0
                      %72 = OpCompositeExtract %float %70 1
                      %73 = OpCompositeExtract %float %70 2
                      %74 = OpCompositeConstruct %v4float %71 %72 %73 %float_1
                      %75 = OpMatrixTimesVector %v4float %69 %74
                      %77 = OpAccessChain %_ptr_Output_v4float %__0 %int_0
                            OpStore %77 %75
                      %83 = OpLoad %v2float %uv
                            OpStore %vUV %83
                      %86 = OpAccessChain %_ptr_Output_float %__0 %int_0 %uint_1
                      %87 = OpLoad %float %86
                      %88 = OpFMul %float %87 %float_n1
                      %89 = OpAccessChain %_ptr_Output_float %__0 %int_0 %uint_1
                            OpStore %89 %88
                            OpReturn
                            OpFunctionEnd