; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 105
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %4 "main" %11 %72 %84 %86 %96 %97
OpName %84 "vs_TEXCOORD0"
OpDecorate %11 Location 11
OpDecorate %16 ArrayStride 16
OpDecorate %17 ArrayStride 17
OpMemberDecorate %18 0 Offset 18
OpMemberDecorate %18 1 Offset 18
OpMemberDecorate %18 2 Offset 18
OpDecorate %18 Block
OpDecorate %20 DescriptorSet 20
OpDecorate %20 Binding 20
OpMemberDecorate %70 0 BuiltIn 70
OpMemberDecorate %70 1 BuiltIn 70
OpMemberDecorate %70 2 BuiltIn 70
OpDecorate %70 Block
OpDecorate %84 Location 84
OpDecorate %86 Location 86
OpDecorate %96 RelaxedPrecision
OpDecorate %96 Location 96
OpDecorate %97 RelaxedPrecision
OpDecorate %97 Location 97
OpDecorate %98 RelaxedPrecision
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Private %7
Private f32_4* %9 = OpVariable Private
%10 = OpTypePointer Input %7
Input f32_4* %11 = OpVariable Input
%14 = OpTypeInt 32 0
u32 %15 = OpConstant 4
%16 = OpTypeArray %7 %15
%17 = OpTypeArray %7 %15
%18 = OpTypeStruct %16 %17 %7
%19 = OpTypePointer Uniform %18
Uniform struct {f32_4[4]; f32_4[4]; f32_4;}* %20 = OpVariable Uniform
%21 = OpTypeInt 32 1
i32 %22 = OpConstant 0
i32 %23 = OpConstant 1
%24 = OpTypePointer Uniform %7
i32 %35 = OpConstant 2
i32 %44 = OpConstant 3
Private f32_4* %48 = OpVariable Private
u32 %68 = OpConstant 1
%69 = OpTypeArray %6 %68
%70 = OpTypeStruct %7 %6 %69
%71 = OpTypePointer Output %70
Output struct {f32_4; f32; f32[1];}* %72 = OpVariable Output
%80 = OpTypePointer Output %7
%82 = OpTypeVector %6 2
%83 = OpTypePointer Output %82
Output f32_2* %84 = OpVariable Output
%85 = OpTypePointer Input %82
Input f32_2* %86 = OpVariable Input
Output f32_4* %96 = OpVariable Output
Input f32_4* %97 = OpVariable Input
%99 = OpTypePointer Output %6
void %4 = OpFunction None %3
%5 = OpLabel
f32_4 %12 = OpLoad %11
f32_4 %13 = OpVectorShuffle %12 %12 1 1 1 1
Uniform f32_4* %25 = OpAccessChain %20 %22 %23
f32_4 %26 = OpLoad %25
f32_4 %27 = OpFMul %13 %26
OpStore %9 %27
Uniform f32_4* %28 = OpAccessChain %20 %22 %22
f32_4 %29 = OpLoad %28
f32_4 %30 = OpLoad %11
f32_4 %31 = OpVectorShuffle %30 %30 0 0 0 0
f32_4 %32 = OpFMul %29 %31
f32_4 %33 = OpLoad %9
f32_4 %34 = OpFAdd %32 %33
OpStore %9 %34
Uniform f32_4* %36 = OpAccessChain %20 %22 %35
f32_4 %37 = OpLoad %36
f32_4 %38 = OpLoad %11
f32_4 %39 = OpVectorShuffle %38 %38 2 2 2 2
f32_4 %40 = OpFMul %37 %39
f32_4 %41 = OpLoad %9
f32_4 %42 = OpFAdd %40 %41
OpStore %9 %42
f32_4 %43 = OpLoad %9
Uniform f32_4* %45 = OpAccessChain %20 %22 %44
f32_4 %46 = OpLoad %45
f32_4 %47 = OpFAdd %43 %46
OpStore %9 %47
f32_4 %49 = OpLoad %9
f32_4 %50 = OpVectorShuffle %49 %49 1 1 1 1
Uniform f32_4* %51 = OpAccessChain %20 %23 %23
f32_4 %52 = OpLoad %51
f32_4 %53 = OpFMul %50 %52
OpStore %48 %53
Uniform f32_4* %54 = OpAccessChain %20 %23 %22
f32_4 %55 = OpLoad %54
f32_4 %56 = OpLoad %9
f32_4 %57 = OpVectorShuffle %56 %56 0 0 0 0
f32_4 %58 = OpFMul %55 %57
f32_4 %59 = OpLoad %48
f32_4 %60 = OpFAdd %58 %59
OpStore %48 %60
Uniform f32_4* %61 = OpAccessChain %20 %23 %35
f32_4 %62 = OpLoad %61
f32_4 %63 = OpLoad %9
f32_4 %64 = OpVectorShuffle %63 %63 2 2 2 2
f32_4 %65 = OpFMul %62 %64
f32_4 %66 = OpLoad %48
f32_4 %67 = OpFAdd %65 %66
OpStore %48 %67
Uniform f32_4* %73 = OpAccessChain %20 %23 %44
f32_4 %74 = OpLoad %73
f32_4 %75 = OpLoad %9
f32_4 %76 = OpVectorShuffle %75 %75 3 3 3 3
f32_4 %77 = OpFMul %74 %76
f32_4 %78 = OpLoad %48
f32_4 %79 = OpFAdd %77 %78
Output f32_4* %81 = OpAccessChain %72 %22
OpStore %81 %79
f32_2 %87 = OpLoad %86
Uniform f32_4* %88 = OpAccessChain %20 %35
f32_4 %89 = OpLoad %88
f32_2 %90 = OpVectorShuffle %89 %89 0 1
f32_2 %91 = OpFMul %87 %90
Uniform f32_4* %92 = OpAccessChain %20 %35
f32_4 %93 = OpLoad %92
f32_2 %94 = OpVectorShuffle %93 %93 2 3
f32_2 %95 = OpFAdd %91 %94
OpStore %84 %95
f32_4 %98 = OpLoad %97
OpStore %96 %98
Output f32* %100 = OpAccessChain %72 %22 %68
f32 %101 = OpLoad %100
f32 %102 = OpFNegate %101
Output f32* %103 = OpAccessChain %72 %22 %68
OpStore %103 %102
OpReturn
OpFunctionEnd