1cb93a386Sopenharmony_ciOpCapability Shader
2cb93a386Sopenharmony_ci%1 = OpExtInstImport "GLSL.std.450"
3cb93a386Sopenharmony_ciOpMemoryModel Logical GLSL450
4cb93a386Sopenharmony_ciOpEntryPoint Vertex %main "main" %3 %sk_InstanceID %sk_VertexID %vcoord_Stage0
5cb93a386Sopenharmony_ciOpName %sk_PerVertex "sk_PerVertex"
6cb93a386Sopenharmony_ciOpMemberName %sk_PerVertex 0 "sk_Position"
7cb93a386Sopenharmony_ciOpMemberName %sk_PerVertex 1 "sk_PointSize"
8cb93a386Sopenharmony_ciOpName %sk_InstanceID "sk_InstanceID"
9cb93a386Sopenharmony_ciOpName %sk_VertexID "sk_VertexID"
10cb93a386Sopenharmony_ciOpName %vcoord_Stage0 "vcoord_Stage0"
11cb93a386Sopenharmony_ciOpName %main "main"
12cb93a386Sopenharmony_ciOpName %x "x"
13cb93a386Sopenharmony_ciOpName %y "y"
14cb93a386Sopenharmony_ciOpName %ileft "ileft"
15cb93a386Sopenharmony_ciOpName %iright "iright"
16cb93a386Sopenharmony_ciOpName %itop "itop"
17cb93a386Sopenharmony_ciOpName %ibot "ibot"
18cb93a386Sopenharmony_ciOpName %outset "outset"
19cb93a386Sopenharmony_ciOpName %l "l"
20cb93a386Sopenharmony_ciOpName %r "r"
21cb93a386Sopenharmony_ciOpName %t "t"
22cb93a386Sopenharmony_ciOpName %b "b"
23cb93a386Sopenharmony_ciOpName %vertexpos "vertexpos"
24cb93a386Sopenharmony_ciOpMemberDecorate %sk_PerVertex 0 BuiltIn Position
25cb93a386Sopenharmony_ciOpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize
26cb93a386Sopenharmony_ciOpDecorate %sk_PerVertex Block
27cb93a386Sopenharmony_ciOpDecorate %sk_InstanceID BuiltIn InstanceIndex
28cb93a386Sopenharmony_ciOpDecorate %sk_VertexID BuiltIn VertexIndex
29cb93a386Sopenharmony_ciOpDecorate %vcoord_Stage0 Location 1
30cb93a386Sopenharmony_ciOpDecorate %vcoord_Stage0 NoPerspective
31cb93a386Sopenharmony_ci%float = OpTypeFloat 32
32cb93a386Sopenharmony_ci%v4float = OpTypeVector %float 4
33cb93a386Sopenharmony_ci%sk_PerVertex = OpTypeStruct %v4float %float
34cb93a386Sopenharmony_ci%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex
35cb93a386Sopenharmony_ci%3 = OpVariable %_ptr_Output_sk_PerVertex Output
36cb93a386Sopenharmony_ci%int = OpTypeInt 32 1
37cb93a386Sopenharmony_ci%_ptr_Input_int = OpTypePointer Input %int
38cb93a386Sopenharmony_ci%sk_InstanceID = OpVariable %_ptr_Input_int Input
39cb93a386Sopenharmony_ci%sk_VertexID = OpVariable %_ptr_Input_int Input
40cb93a386Sopenharmony_ci%v2float = OpTypeVector %float 2
41cb93a386Sopenharmony_ci%_ptr_Output_v2float = OpTypePointer Output %v2float
42cb93a386Sopenharmony_ci%vcoord_Stage0 = OpVariable %_ptr_Output_v2float Output
43cb93a386Sopenharmony_ci%void = OpTypeVoid
44cb93a386Sopenharmony_ci%16 = OpTypeFunction %void
45cb93a386Sopenharmony_ci%_ptr_Function_int = OpTypePointer Function %int
46cb93a386Sopenharmony_ci%int_200 = OpConstant %int 200
47cb93a386Sopenharmony_ci%int_929 = OpConstant %int 929
48cb93a386Sopenharmony_ci%int_17 = OpConstant %int 17
49cb93a386Sopenharmony_ci%int_1 = OpConstant %int 1
50cb93a386Sopenharmony_ci%int_1637 = OpConstant %int 1637
51cb93a386Sopenharmony_ci%int_313 = OpConstant %int 313
52cb93a386Sopenharmony_ci%int_1901 = OpConstant %int 1901
53cb93a386Sopenharmony_ci%_ptr_Function_float = OpTypePointer Function %float
54cb93a386Sopenharmony_ci%float_0_03125 = OpConstant %float 0.03125
55cb93a386Sopenharmony_ci%int_0 = OpConstant %int 0
56cb93a386Sopenharmony_ci%int_2 = OpConstant %int 2
57cb93a386Sopenharmony_ci%bool = OpTypeBool
58cb93a386Sopenharmony_ci%float_0_0625 = OpConstant %float 0.0625
59cb93a386Sopenharmony_ci%_ptr_Function_v2float = OpTypePointer Function %v2float
60cb93a386Sopenharmony_ci%int_n1 = OpConstant %int -1
61cb93a386Sopenharmony_ci%_ptr_Output_float = OpTypePointer Output %float
62cb93a386Sopenharmony_ci%float_0 = OpConstant %float 0
63cb93a386Sopenharmony_ci%float_1 = OpConstant %float 1
64cb93a386Sopenharmony_ci%_ptr_Output_v4float = OpTypePointer Output %v4float
65cb93a386Sopenharmony_ci%main = OpFunction %void None %16
66cb93a386Sopenharmony_ci%17 = OpLabel
67cb93a386Sopenharmony_ci%x = OpVariable %_ptr_Function_int Function
68cb93a386Sopenharmony_ci%y = OpVariable %_ptr_Function_int Function
69cb93a386Sopenharmony_ci%ileft = OpVariable %_ptr_Function_int Function
70cb93a386Sopenharmony_ci%iright = OpVariable %_ptr_Function_int Function
71cb93a386Sopenharmony_ci%itop = OpVariable %_ptr_Function_int Function
72cb93a386Sopenharmony_ci%ibot = OpVariable %_ptr_Function_int Function
73cb93a386Sopenharmony_ci%outset = OpVariable %_ptr_Function_float Function
74cb93a386Sopenharmony_ci%69 = OpVariable %_ptr_Function_float Function
75cb93a386Sopenharmony_ci%l = OpVariable %_ptr_Function_float Function
76cb93a386Sopenharmony_ci%r = OpVariable %_ptr_Function_float Function
77cb93a386Sopenharmony_ci%t = OpVariable %_ptr_Function_float Function
78cb93a386Sopenharmony_ci%b = OpVariable %_ptr_Function_float Function
79cb93a386Sopenharmony_ci%vertexpos = OpVariable %_ptr_Function_v2float Function
80cb93a386Sopenharmony_ci%109 = OpVariable %_ptr_Function_float Function
81cb93a386Sopenharmony_ci%123 = OpVariable %_ptr_Function_float Function
82cb93a386Sopenharmony_ci%20 = OpLoad %int %sk_InstanceID
83cb93a386Sopenharmony_ci%22 = OpSMod %int %20 %int_200
84cb93a386Sopenharmony_ciOpStore %x %22
85cb93a386Sopenharmony_ci%24 = OpLoad %int %sk_InstanceID
86cb93a386Sopenharmony_ci%25 = OpSDiv %int %24 %int_200
87cb93a386Sopenharmony_ciOpStore %y %25
88cb93a386Sopenharmony_ci%27 = OpLoad %int %sk_InstanceID
89cb93a386Sopenharmony_ci%29 = OpIMul %int %27 %int_929
90cb93a386Sopenharmony_ci%31 = OpSMod %int %29 %int_17
91cb93a386Sopenharmony_ciOpStore %ileft %31
92cb93a386Sopenharmony_ci%33 = OpLoad %int %ileft
93cb93a386Sopenharmony_ci%35 = OpIAdd %int %33 %int_1
94cb93a386Sopenharmony_ci%36 = OpLoad %int %sk_InstanceID
95cb93a386Sopenharmony_ci%38 = OpIMul %int %36 %int_1637
96cb93a386Sopenharmony_ci%39 = OpLoad %int %ileft
97cb93a386Sopenharmony_ci%40 = OpISub %int %int_17 %39
98cb93a386Sopenharmony_ci%41 = OpSMod %int %38 %40
99cb93a386Sopenharmony_ci%42 = OpIAdd %int %35 %41
100cb93a386Sopenharmony_ciOpStore %iright %42
101cb93a386Sopenharmony_ci%44 = OpLoad %int %sk_InstanceID
102cb93a386Sopenharmony_ci%46 = OpIMul %int %44 %int_313
103cb93a386Sopenharmony_ci%47 = OpSMod %int %46 %int_17
104cb93a386Sopenharmony_ciOpStore %itop %47
105cb93a386Sopenharmony_ci%49 = OpLoad %int %itop
106cb93a386Sopenharmony_ci%50 = OpIAdd %int %49 %int_1
107cb93a386Sopenharmony_ci%51 = OpLoad %int %sk_InstanceID
108cb93a386Sopenharmony_ci%53 = OpIMul %int %51 %int_1901
109cb93a386Sopenharmony_ci%54 = OpLoad %int %itop
110cb93a386Sopenharmony_ci%55 = OpISub %int %int_17 %54
111cb93a386Sopenharmony_ci%56 = OpSMod %int %53 %55
112cb93a386Sopenharmony_ci%57 = OpIAdd %int %50 %56
113cb93a386Sopenharmony_ciOpStore %ibot %57
114cb93a386Sopenharmony_ciOpStore %outset %float_0_03125
115cb93a386Sopenharmony_ci%62 = OpLoad %int %x
116cb93a386Sopenharmony_ci%63 = OpLoad %int %y
117cb93a386Sopenharmony_ci%64 = OpIAdd %int %62 %63
118cb93a386Sopenharmony_ci%66 = OpSMod %int %64 %int_2
119cb93a386Sopenharmony_ci%67 = OpIEqual %bool %int_0 %66
120cb93a386Sopenharmony_ciOpSelectionMerge %72 None
121cb93a386Sopenharmony_ciOpBranchConditional %67 %70 %71
122cb93a386Sopenharmony_ci%70 = OpLabel
123cb93a386Sopenharmony_ci%74 = OpLoad %float %outset
124cb93a386Sopenharmony_ci%73 = OpFNegate %float %74
125cb93a386Sopenharmony_ciOpStore %69 %73
126cb93a386Sopenharmony_ciOpBranch %72
127cb93a386Sopenharmony_ci%71 = OpLabel
128cb93a386Sopenharmony_ci%75 = OpLoad %float %outset
129cb93a386Sopenharmony_ciOpStore %69 %75
130cb93a386Sopenharmony_ciOpBranch %72
131cb93a386Sopenharmony_ci%72 = OpLabel
132cb93a386Sopenharmony_ci%76 = OpLoad %float %69
133cb93a386Sopenharmony_ciOpStore %outset %76
134cb93a386Sopenharmony_ci%78 = OpLoad %int %ileft
135cb93a386Sopenharmony_ci%79 = OpConvertSToF %float %78
136cb93a386Sopenharmony_ci%81 = OpFMul %float %79 %float_0_0625
137cb93a386Sopenharmony_ci%82 = OpLoad %float %outset
138cb93a386Sopenharmony_ci%83 = OpFSub %float %81 %82
139cb93a386Sopenharmony_ciOpStore %l %83
140cb93a386Sopenharmony_ci%85 = OpLoad %int %iright
141cb93a386Sopenharmony_ci%86 = OpConvertSToF %float %85
142cb93a386Sopenharmony_ci%87 = OpFMul %float %86 %float_0_0625
143cb93a386Sopenharmony_ci%88 = OpLoad %float %outset
144cb93a386Sopenharmony_ci%89 = OpFAdd %float %87 %88
145cb93a386Sopenharmony_ciOpStore %r %89
146cb93a386Sopenharmony_ci%91 = OpLoad %int %itop
147cb93a386Sopenharmony_ci%92 = OpConvertSToF %float %91
148cb93a386Sopenharmony_ci%93 = OpFMul %float %92 %float_0_0625
149cb93a386Sopenharmony_ci%94 = OpLoad %float %outset
150cb93a386Sopenharmony_ci%95 = OpFSub %float %93 %94
151cb93a386Sopenharmony_ciOpStore %t %95
152cb93a386Sopenharmony_ci%97 = OpLoad %int %ibot
153cb93a386Sopenharmony_ci%98 = OpConvertSToF %float %97
154cb93a386Sopenharmony_ci%99 = OpFMul %float %98 %float_0_0625
155cb93a386Sopenharmony_ci%100 = OpLoad %float %outset
156cb93a386Sopenharmony_ci%101 = OpFAdd %float %99 %100
157cb93a386Sopenharmony_ciOpStore %b %101
158cb93a386Sopenharmony_ci%104 = OpLoad %int %x
159cb93a386Sopenharmony_ci%105 = OpConvertSToF %float %104
160cb93a386Sopenharmony_ci%106 = OpLoad %int %sk_VertexID
161cb93a386Sopenharmony_ci%107 = OpSMod %int %106 %int_2
162cb93a386Sopenharmony_ci%108 = OpIEqual %bool %int_0 %107
163cb93a386Sopenharmony_ciOpSelectionMerge %112 None
164cb93a386Sopenharmony_ciOpBranchConditional %108 %110 %111
165cb93a386Sopenharmony_ci%110 = OpLabel
166cb93a386Sopenharmony_ci%113 = OpLoad %float %l
167cb93a386Sopenharmony_ciOpStore %109 %113
168cb93a386Sopenharmony_ciOpBranch %112
169cb93a386Sopenharmony_ci%111 = OpLabel
170cb93a386Sopenharmony_ci%114 = OpLoad %float %r
171cb93a386Sopenharmony_ciOpStore %109 %114
172cb93a386Sopenharmony_ciOpBranch %112
173cb93a386Sopenharmony_ci%112 = OpLabel
174cb93a386Sopenharmony_ci%115 = OpLoad %float %109
175cb93a386Sopenharmony_ci%116 = OpFAdd %float %105 %115
176cb93a386Sopenharmony_ci%117 = OpAccessChain %_ptr_Function_float %vertexpos %int_0
177cb93a386Sopenharmony_ciOpStore %117 %116
178cb93a386Sopenharmony_ci%118 = OpLoad %int %y
179cb93a386Sopenharmony_ci%119 = OpConvertSToF %float %118
180cb93a386Sopenharmony_ci%120 = OpLoad %int %sk_VertexID
181cb93a386Sopenharmony_ci%121 = OpSDiv %int %120 %int_2
182cb93a386Sopenharmony_ci%122 = OpIEqual %bool %int_0 %121
183cb93a386Sopenharmony_ciOpSelectionMerge %126 None
184cb93a386Sopenharmony_ciOpBranchConditional %122 %124 %125
185cb93a386Sopenharmony_ci%124 = OpLabel
186cb93a386Sopenharmony_ci%127 = OpLoad %float %t
187cb93a386Sopenharmony_ciOpStore %123 %127
188cb93a386Sopenharmony_ciOpBranch %126
189cb93a386Sopenharmony_ci%125 = OpLabel
190cb93a386Sopenharmony_ci%128 = OpLoad %float %b
191cb93a386Sopenharmony_ciOpStore %123 %128
192cb93a386Sopenharmony_ciOpBranch %126
193cb93a386Sopenharmony_ci%126 = OpLabel
194cb93a386Sopenharmony_ci%129 = OpLoad %float %123
195cb93a386Sopenharmony_ci%130 = OpFAdd %float %119 %129
196cb93a386Sopenharmony_ci%131 = OpAccessChain %_ptr_Function_float %vertexpos %int_1
197cb93a386Sopenharmony_ciOpStore %131 %130
198cb93a386Sopenharmony_ci%132 = OpLoad %int %sk_VertexID
199cb93a386Sopenharmony_ci%133 = OpSMod %int %132 %int_2
200cb93a386Sopenharmony_ci%134 = OpIEqual %bool %int_0 %133
201cb93a386Sopenharmony_ci%135 = OpSelect %int %134 %int_n1 %int_1
202cb93a386Sopenharmony_ci%137 = OpConvertSToF %float %135
203cb93a386Sopenharmony_ci%138 = OpAccessChain %_ptr_Output_float %vcoord_Stage0 %int_0
204cb93a386Sopenharmony_ciOpStore %138 %137
205cb93a386Sopenharmony_ci%140 = OpLoad %int %sk_VertexID
206cb93a386Sopenharmony_ci%141 = OpSDiv %int %140 %int_2
207cb93a386Sopenharmony_ci%142 = OpIEqual %bool %int_0 %141
208cb93a386Sopenharmony_ci%143 = OpSelect %int %142 %int_n1 %int_1
209cb93a386Sopenharmony_ci%144 = OpConvertSToF %float %143
210cb93a386Sopenharmony_ci%145 = OpAccessChain %_ptr_Output_float %vcoord_Stage0 %int_1
211cb93a386Sopenharmony_ciOpStore %145 %144
212cb93a386Sopenharmony_ci%146 = OpLoad %v2float %vertexpos
213cb93a386Sopenharmony_ci%147 = OpCompositeExtract %float %146 0
214cb93a386Sopenharmony_ci%148 = OpLoad %v2float %vertexpos
215cb93a386Sopenharmony_ci%149 = OpCompositeExtract %float %148 1
216cb93a386Sopenharmony_ci%152 = OpCompositeConstruct %v4float %147 %149 %float_0 %float_1
217cb93a386Sopenharmony_ci%153 = OpAccessChain %_ptr_Output_v4float %3 %int_0
218cb93a386Sopenharmony_ciOpStore %153 %152
219cb93a386Sopenharmony_ciOpReturn
220cb93a386Sopenharmony_ciOpFunctionEnd
221