1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 10
4; Bound: 42
5; Schema: 0
6               OpCapability Tessellation
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint TessellationControl %main "main" %gl_out %gl_InvocationID %_ %patches %v2 %v3 %verts
10               OpExecutionMode %main OutputVertices 4
11               OpSource GLSL 450
12               OpName %main "main"
13               OpName %gl_PerVertex "gl_PerVertex"
14               OpMemberName %gl_PerVertex 0 "gl_Position"
15               OpMemberName %gl_PerVertex 1 "gl_PointSize"
16               OpMemberName %gl_PerVertex 2 "gl_ClipDistance"
17               OpMemberName %gl_PerVertex 3 "gl_CullDistance"
18               OpName %gl_out "gl_out"
19               OpName %gl_InvocationID "gl_InvocationID"
20               OpName %vert "vert"
21               OpMemberName %vert 0 "v0"
22               OpMemberName %vert 1 "v1"
23               OpName %_ ""
24               OpName %vert_patch "vert_patch"
25               OpMemberName %vert_patch 0 "v2"
26               OpMemberName %vert_patch 1 "v3"
27               OpName %patches "patches"
28               OpName %v2 "v2"
29               OpName %v3 "v3"
30               OpName %vert2 "vert2"
31               OpMemberName %vert2 0 "v4"
32               OpMemberName %vert2 1 "v5"
33               OpName %verts "verts"
34               OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
35               OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
36               OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance
37               OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance
38               OpDecorate %gl_PerVertex Block
39               OpDecorate %gl_InvocationID BuiltIn InvocationId
40               OpMemberDecorate %vert 0 Patch
41               OpMemberDecorate %vert 1 Patch
42               OpDecorate %vert Block
43               OpDecorate %_ Location 0
44               OpMemberDecorate %vert_patch 0 Patch
45               OpMemberDecorate %vert_patch 1 Patch
46               OpDecorate %vert_patch Block
47               OpDecorate %patches Location 2
48               OpDecorate %v2 Patch
49               OpDecorate %v2 Location 6
50               OpDecorate %v3 Location 7
51               OpDecorate %vert2 Block
52               OpDecorate %verts Location 8
53       %void = OpTypeVoid
54          %3 = OpTypeFunction %void
55      %float = OpTypeFloat 32
56    %v4float = OpTypeVector %float 4
57       %uint = OpTypeInt 32 0
58     %uint_1 = OpConstant %uint 1
59%_arr_float_uint_1 = OpTypeArray %float %uint_1
60%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1
61     %uint_4 = OpConstant %uint 4
62%_arr_gl_PerVertex_uint_4 = OpTypeArray %gl_PerVertex %uint_4
63%_ptr_Output__arr_gl_PerVertex_uint_4 = OpTypePointer Output %_arr_gl_PerVertex_uint_4
64	%gl_out_zero = OpConstantNull %_arr_gl_PerVertex_uint_4
65     %gl_out = OpVariable %_ptr_Output__arr_gl_PerVertex_uint_4 Output %gl_out_zero
66        %int = OpTypeInt 32 1
67%_ptr_Input_int = OpTypePointer Input %int
68%gl_InvocationID = OpVariable %_ptr_Input_int Input
69      %int_0 = OpConstant %int 0
70    %float_1 = OpConstant %float 1
71         %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
72%_ptr_Output_v4float = OpTypePointer Output %v4float
73       %vert = OpTypeStruct %float %float
74%_ptr_Output_vert = OpTypePointer Output %vert
75		%__zero = OpConstantNull %vert
76          %_ = OpVariable %_ptr_Output_vert Output %__zero
77 %vert_patch = OpTypeStruct %float %float
78     %uint_2 = OpConstant %uint 2
79%_arr_vert_patch_uint_2 = OpTypeArray %vert_patch %uint_2
80%_ptr_Output__arr_vert_patch_uint_2 = OpTypePointer Output %_arr_vert_patch_uint_2
81	%patches_zero = OpConstantNull %_arr_vert_patch_uint_2
82    %patches = OpVariable %_ptr_Output__arr_vert_patch_uint_2 Output %patches_zero
83%_ptr_Output_float = OpTypePointer Output %float
84		%v2_zero = OpConstantNull %float
85         %v2 = OpVariable %_ptr_Output_float Output %v2_zero
86%_arr_float_uint_4 = OpTypeArray %float %uint_4
87%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4
88		%v3_zero = OpConstantNull %_arr_float_uint_4
89         %v3 = OpVariable %_ptr_Output__arr_float_uint_4 Output %v3_zero
90      %vert2 = OpTypeStruct %float %float
91%_arr_vert2_uint_4 = OpTypeArray %vert2 %uint_4
92%_ptr_Output__arr_vert2_uint_4 = OpTypePointer Output %_arr_vert2_uint_4
93	%verts_zero = OpConstantNull %_arr_vert2_uint_4
94      %verts = OpVariable %_ptr_Output__arr_vert2_uint_4 Output %verts_zero
95       %main = OpFunction %void None %3
96          %5 = OpLabel
97         %19 = OpLoad %int %gl_InvocationID
98         %24 = OpAccessChain %_ptr_Output_v4float %gl_out %19 %int_0
99               OpStore %24 %22
100               OpReturn
101               OpFunctionEnd
102