blob: e5750e17c22b44590e48fac1ce64afc3c003780d [file] [log] [blame]
Alastair Donaldsonf7e73d42021-07-23 13:10:12 +00001 OpCapability Shader
2 %1 = OpExtInstImport "GLSL.std.450"
3 OpMemoryModel Logical GLSL450
4 OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color
5 OpExecutionMode %main OriginUpperLeft
6 OpSource ESSL 320
7 OpName %main "main"
8 OpName %gl_FragCoord "gl_FragCoord"
9 OpName %buf0 "buf0"
10 OpMemberName %buf0 0 "resolution"
11 OpName %_ ""
12 OpName %_GLF_color "_GLF_color"
13 OpName %indexable "indexable"
14 OpDecorate %gl_FragCoord BuiltIn FragCoord
15 OpMemberDecorate %buf0 0 Offset 0
16 OpDecorate %buf0 Block
17 OpDecorate %_ DescriptorSet 0
18 OpDecorate %_ Binding 0
19 OpDecorate %_GLF_color Location 0
20 %void = OpTypeVoid
21 %9 = OpTypeFunction %void
22 %int = OpTypeInt 32 1
23 %v2int = OpTypeVector %int 2
24 %uint = OpTypeInt 32 0
25 %int_0 = OpConstant %int 0
26 %bool = OpTypeBool
27 %int_1 = OpConstant %int 1
28 %int_2 = OpConstant %int 2
29 %float = OpTypeFloat 32
30 %v2float = OpTypeVector %float 2
31 %v4float = OpTypeVector %float 4
32%_ptr_Input_v4float = OpTypePointer Input %v4float
33%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
34 %buf0 = OpTypeStruct %v2float
35%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
36 %_ = OpVariable %_ptr_Uniform_buf0 Uniform
37%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
38 %float_8 = OpConstant %float 8
39 %int_5 = OpConstant %int 5
40 %int_10 = OpConstant %int 10
41 %int_8 = OpConstant %int 8
42 %int_100 = OpConstant %int 100
43 %int_15 = OpConstant %int 15
44 %int_16 = OpConstant %int 16
45%_ptr_Output_v4float = OpTypePointer Output %v4float
46 %_GLF_color = OpVariable %_ptr_Output_v4float Output
47 %uint_16 = OpConstant %uint 16
48%_arr_v4float_uint_16 = OpTypeArray %v4float %uint_16
49 %float_0 = OpConstant %float 0
50 %float_1 = OpConstant %float 1
51 %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
52 %float_0_5 = OpConstant %float 0.5
53 %37 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0 %float_1
54 %38 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_1
55 %39 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0 %float_1
56 %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0_5 %float_1
57 %41 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0_5 %float_1
58 %42 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0_5 %float_1
59 %43 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_1
60 %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
61 %45 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
62 %46 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_1
63 %47 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
64 %48 = OpConstantComposite %v4float %float_1 %float_0 %float_1 %float_1
65 %49 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1
66 %50 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
67 %51 = OpConstantComposite %_arr_v4float_uint_16 %35 %37 %38 %39 %40 %41 %42 %43 %35 %44 %45 %46 %47 %48 %49 %50
68%_ptr_Function__arr_v4float_uint_16 = OpTypePointer Function %_arr_v4float_uint_16
69%_ptr_Function_v4float = OpTypePointer Function %v4float
70 %main = OpFunction %void None %9
71 %54 = OpLabel
72 %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function
73 %55 = OpLoad %v4float %gl_FragCoord
74 %56 = OpVectorShuffle %v2float %55 %55 0 1
75 %57 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0
76 %58 = OpLoad %v2float %57
77 %59 = OpFDiv %v2float %56 %58
78 %60 = OpCompositeExtract %float %59 0
79 %61 = OpFMul %float %60 %float_8
80 %62 = OpConvertFToS %int %61
81 %63 = OpCompositeExtract %float %59 1
82 %64 = OpFMul %float %63 %float_8
83 %65 = OpConvertFToS %int %64
84 %66 = OpBitwiseAnd %int %62 %int_5
85 %67 = OpBitwiseAnd %int %65 %int_10
86 %68 = OpBitwiseOr %int %66 %67
87 %69 = OpBitwiseAnd %int %65 %int_5
88 %70 = OpBitwiseAnd %int %62 %int_10
89 %71 = OpBitwiseOr %int %69 %70
90 %72 = OpIMul %int %68 %int_8
91 %73 = OpIAdd %int %72 %71
92 %74 = OpCompositeConstruct %v2int %73 %int_0
93 OpBranch %75
94 %75 = OpLabel
95 %76 = OpPhi %v2int %74 %54 %77 %78
96 %79 = OpPhi %int %int_0 %54 %80 %78
97 %81 = OpSLessThan %bool %79 %int_100
98 OpLoopMerge %82 %78 None
99 OpBranchConditional %81 %83 %82
100 %83 = OpLabel
101 %84 = OpCompositeExtract %int %76 0
102 %85 = OpSGreaterThan %bool %84 %int_0
103 OpSelectionMerge %86 None
104 OpBranchConditional %85 %87 %86
105 %87 = OpLabel
106 %88 = OpCompositeExtract %int %76 1
107 %89 = OpISub %int %88 %int_1
108 %90 = OpCompositeInsert %v2int %89 %76 1
109 OpBranch %86
110 %86 = OpLabel
111 %91 = OpPhi %v2int %76 %83 %90 %87
112 %92 = OpCompositeExtract %int %91 0
113 %93 = OpSLessThan %bool %92 %int_0
114 OpSelectionMerge %94 None
115 OpBranchConditional %93 %95 %94
116 %95 = OpLabel
117 %96 = OpCompositeExtract %int %91 1
118 %97 = OpIAdd %int %96 %int_1
119 %98 = OpCompositeInsert %v2int %97 %91 1
120 OpBranch %94
121 %94 = OpLabel
122 %99 = OpPhi %v2int %91 %86 %98 %95
123 %100 = OpCompositeExtract %int %99 1
124 %101 = OpSDiv %int %100 %int_2
125 %102 = OpCompositeExtract %int %99 0
126 %103 = OpIAdd %int %102 %101
127 %77 = OpCompositeInsert %v2int %103 %99 0
128 OpBranch %78
129 %78 = OpLabel
130 %80 = OpIAdd %int %79 %int_1
131 OpBranch %75
132 %82 = OpLabel
133 %104 = OpCompositeExtract %int %76 0
134 %105 = OpSLessThan %bool %104 %int_0
135 OpSelectionMerge %106 None
136 OpBranchConditional %105 %107 %106
137 %107 = OpLabel
138 %108 = OpSNegate %int %104
139 %109 = OpCompositeInsert %v2int %108 %76 0
140 OpBranch %106
141 %106 = OpLabel
142 %110 = OpPhi %v2int %76 %82 %109 %107
143 OpBranch %111
144 %111 = OpLabel
145 %112 = OpPhi %v2int %110 %106 %113 %114
146 %115 = OpCompositeExtract %int %112 0
147 %116 = OpSGreaterThan %bool %115 %int_15
148 OpLoopMerge %117 %114 None
149 OpBranchConditional %116 %114 %117
150 %114 = OpLabel
151 %118 = OpISub %int %115 %int_16
152 %113 = OpCompositeInsert %v2int %118 %112 0
153 OpBranch %111
154 %117 = OpLabel
155 OpStore %indexable %51
156 %119 = OpAccessChain %_ptr_Function_v4float %indexable %115
157 %120 = OpLoad %v4float %119
158 OpStore %_GLF_color %120
159 OpReturn
160 OpFunctionEnd