SPIRV-Cross/shaders-no-opt/asm/comp/expression-nesting-limits.asm.comp
Hans-Kristian Arntzen ef6bde6580 Do not forward expressions which carry a huge amount of dependencies.
Need to force temporaries eventually, or compilers have a tendency to
explode.
2022-01-17 13:45:12 +01:00

289 lines
11 KiB
Plaintext

; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 10117
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %1 "main" %gl_GlobalInvocationID
OpExecutionMode %1 LocalSize 1 1 1
OpSource GLSL 430
OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
OpDecorate %_arr_uint_int_16 ArrayStride 4
OpMemberDecorate %_struct_4 0 Offset 0
OpDecorate %_struct_4 BufferBlock
OpDecorate %5 DescriptorSet 0
OpDecorate %5 Binding 0
OpDecorate %6 DescriptorSet 0
OpDecorate %6 Binding 1
OpDecorate %7 DescriptorSet 0
OpDecorate %7 Binding 2
%void = OpTypeVoid
%bool = OpTypeBool
%int = OpTypeInt 32 1
%uint = OpTypeInt 32 0
%float = OpTypeFloat 32
%v2int = OpTypeVector %int 2
%v2uint = OpTypeVector %uint 2
%v2float = OpTypeVector %float 2
%v3int = OpTypeVector %int 3
%v3uint = OpTypeVector %uint 3
%v3float = OpTypeVector %float 3
%v4int = OpTypeVector %int 4
%v4uint = OpTypeVector %uint 4
%v4float = OpTypeVector %float 4
%v4bool = OpTypeVector %bool 4
%23 = OpTypeFunction %v4float %v4float
%24 = OpTypeFunction %bool
%25 = OpTypeFunction %void
%_ptr_Input_float = OpTypePointer Input %float
%_ptr_Input_int = OpTypePointer Input %int
%_ptr_Input_uint = OpTypePointer Input %uint
%_ptr_Input_v2float = OpTypePointer Input %v2float
%_ptr_Input_v2int = OpTypePointer Input %v2int
%_ptr_Input_v2uint = OpTypePointer Input %v2uint
%_ptr_Input_v3float = OpTypePointer Input %v3float
%_ptr_Input_v4float = OpTypePointer Input %v4float
%_ptr_Input_v4int = OpTypePointer Input %v4int
%_ptr_Input_v4uint = OpTypePointer Input %v4uint
%_ptr_Output_float = OpTypePointer Output %float
%_ptr_Output_int = OpTypePointer Output %int
%_ptr_Output_uint = OpTypePointer Output %uint
%_ptr_Output_v2float = OpTypePointer Output %v2float
%_ptr_Output_v2int = OpTypePointer Output %v2int
%_ptr_Output_v2uint = OpTypePointer Output %v2uint
%_ptr_Output_v4float = OpTypePointer Output %v4float
%_ptr_Output_v4int = OpTypePointer Output %v4int
%_ptr_Output_v4uint = OpTypePointer Output %v4uint
%_ptr_Function_float = OpTypePointer Function %float
%_ptr_Function_int = OpTypePointer Function %int
%_ptr_Function_v4float = OpTypePointer Function %v4float
%float_1 = OpConstant %float 1
%float_0 = OpConstant %float 0
%float_0_5 = OpConstant %float 0.5
%float_n1 = OpConstant %float -1
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_32 = OpConstant %uint 32
%uint_4 = OpConstant %uint 4
%uint_2147483647 = OpConstant %uint 2147483647
%66 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
%67 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%68 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5
%_arr_float_uint_1 = OpTypeArray %float %uint_1
%_arr_float_uint_2 = OpTypeArray %float %uint_2
%_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3
%_arr_float_uint_4 = OpTypeArray %float %uint_4
%_arr_v4float_uint_32 = OpTypeArray %v4float %uint_32
%_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3
%_ptr_Input__arr_v4float_uint_32 = OpTypePointer Input %_arr_v4float_uint_32
%_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2
%_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3
%_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
%int_16 = OpConstant %int 16
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
%_arr_uint_int_16 = OpTypeArray %uint %int_16
%_struct_4 = OpTypeStruct %_arr_uint_int_16
%_ptr_Uniform__struct_4 = OpTypePointer Uniform %_struct_4
%5 = OpVariable %_ptr_Uniform__struct_4 Uniform
%6 = OpVariable %_ptr_Uniform__struct_4 Uniform
%7 = OpVariable %_ptr_Uniform__struct_4 Uniform
%1 = OpFunction %void None %25
%83 = OpLabel
%84 = OpLoad %v3uint %gl_GlobalInvocationID
%85 = OpCompositeConstruct %v4uint %84 %uint_0
%86 = OpConvertUToF %v4float %85
%87 = OpFunctionCall %v4float %88 %86
OpReturn
OpFunctionEnd
%88 = OpFunction %v4float None %23
%89 = OpFunctionParameter %v4float
%92 = OpLabel
%93 = OpVariable %_ptr_Function_int Function
OpStore %93 %int_0
OpBranch %94
%94 = OpLabel
%95 = OpLoad %int %93
%96 = OpSLessThan %bool %95 %int_16
OpLoopMerge %97 %10100 None
OpBranchConditional %96 %10101 %97
%10101 = OpLabel
%10102 = OpLoad %int %93
%90 = OpAccessChain %_ptr_Uniform_uint %6 %int_0 %10102
%91 = OpLoad %uint %90
%98 = OpAccessChain %_ptr_Uniform_uint %5 %int_0 %10102
%99 = OpLoad %uint %98
%100 = OpIAdd %uint %91 %99
%101 = OpIAdd %uint %91 %100
%102 = OpIAdd %uint %91 %101
%103 = OpIAdd %uint %91 %102
%104 = OpIAdd %uint %91 %103
%105 = OpIAdd %uint %91 %104
%106 = OpIAdd %uint %91 %105
%107 = OpIAdd %uint %91 %106
%108 = OpIAdd %uint %91 %107
%109 = OpIAdd %uint %91 %108
%110 = OpIAdd %uint %91 %109
%111 = OpIAdd %uint %91 %110
%112 = OpIAdd %uint %91 %111
%113 = OpIAdd %uint %91 %112
%114 = OpIAdd %uint %91 %113
%115 = OpIAdd %uint %91 %114
%116 = OpIAdd %uint %91 %115
%117 = OpIAdd %uint %91 %116
%118 = OpIAdd %uint %91 %117
%119 = OpIAdd %uint %91 %118
%120 = OpIAdd %uint %91 %119
%121 = OpIAdd %uint %91 %120
%122 = OpIAdd %uint %91 %121
%123 = OpIAdd %uint %91 %122
%124 = OpIAdd %uint %91 %123
%125 = OpIAdd %uint %91 %124
%126 = OpIAdd %uint %91 %125
%127 = OpIAdd %uint %91 %126
%128 = OpIAdd %uint %91 %127
%129 = OpIAdd %uint %91 %128
%130 = OpIAdd %uint %91 %129
%131 = OpIAdd %uint %91 %130
%132 = OpIAdd %uint %91 %131
%133 = OpIAdd %uint %91 %132
%134 = OpIAdd %uint %91 %133
%135 = OpIAdd %uint %91 %134
%136 = OpIAdd %uint %91 %135
%137 = OpIAdd %uint %91 %136
%138 = OpIAdd %uint %91 %137
%139 = OpIAdd %uint %91 %138
%140 = OpIAdd %uint %91 %139
%141 = OpIAdd %uint %91 %140
%142 = OpIAdd %uint %91 %141
%143 = OpIAdd %uint %91 %142
%144 = OpIAdd %uint %91 %143
%145 = OpIAdd %uint %91 %144
%146 = OpIAdd %uint %91 %145
%147 = OpIAdd %uint %91 %146
%148 = OpIAdd %uint %91 %147
%149 = OpIAdd %uint %91 %148
%150 = OpIAdd %uint %91 %149
%151 = OpIAdd %uint %91 %150
%152 = OpIAdd %uint %91 %151
%153 = OpIAdd %uint %91 %152
%154 = OpIAdd %uint %91 %153
%155 = OpIAdd %uint %91 %154
%156 = OpIAdd %uint %91 %155
%157 = OpIAdd %uint %91 %156
%158 = OpIAdd %uint %91 %157
%159 = OpIAdd %uint %91 %158
%160 = OpIAdd %uint %91 %159
%161 = OpIAdd %uint %91 %160
%162 = OpIAdd %uint %91 %161
%163 = OpIAdd %uint %91 %162
%164 = OpIAdd %uint %91 %163
%165 = OpIAdd %uint %91 %164
%166 = OpIAdd %uint %91 %165
%167 = OpIAdd %uint %91 %166
%168 = OpIAdd %uint %91 %167
%169 = OpIAdd %uint %91 %168
%170 = OpIAdd %uint %91 %169
%171 = OpIAdd %uint %91 %170
%172 = OpIAdd %uint %91 %171
%173 = OpIAdd %uint %91 %172
%174 = OpIAdd %uint %91 %173
%175 = OpIAdd %uint %91 %174
%176 = OpIAdd %uint %91 %175
%177 = OpIAdd %uint %91 %176
%178 = OpIAdd %uint %91 %177
%179 = OpIAdd %uint %91 %178
%180 = OpIAdd %uint %91 %179
%181 = OpIAdd %uint %91 %180
%182 = OpIAdd %uint %91 %181
%183 = OpIAdd %uint %91 %182
%184 = OpIAdd %uint %91 %183
%185 = OpIAdd %uint %91 %184
%186 = OpIAdd %uint %91 %185
%187 = OpIAdd %uint %91 %186
%188 = OpIAdd %uint %91 %187
%189 = OpIAdd %uint %91 %188
%190 = OpIAdd %uint %91 %189
%191 = OpIAdd %uint %91 %190
%192 = OpIAdd %uint %91 %191
%193 = OpIAdd %uint %91 %192
%194 = OpIAdd %uint %91 %193
%195 = OpIAdd %uint %91 %194
%196 = OpIAdd %uint %91 %195
%197 = OpIAdd %uint %91 %196
%198 = OpIAdd %uint %91 %197
%199 = OpIAdd %uint %91 %198
%200 = OpIAdd %uint %91 %199
%201 = OpIAdd %uint %91 %200
%202 = OpIAdd %uint %91 %201
%203 = OpIAdd %uint %91 %202
%204 = OpIAdd %uint %91 %203
%205 = OpIAdd %uint %91 %204
%206 = OpIAdd %uint %91 %205
%207 = OpIAdd %uint %91 %206
%208 = OpIAdd %uint %91 %207
%209 = OpIAdd %uint %91 %208
%210 = OpIAdd %uint %91 %209
%211 = OpIAdd %uint %91 %210
%212 = OpIAdd %uint %91 %211
%213 = OpIAdd %uint %91 %212
%214 = OpIAdd %uint %91 %213
%215 = OpIAdd %uint %91 %214
%216 = OpIAdd %uint %91 %215
%217 = OpIAdd %uint %91 %216
%218 = OpIAdd %uint %91 %217
%219 = OpIAdd %uint %91 %218
%220 = OpIAdd %uint %91 %219
%221 = OpIAdd %uint %91 %220
%222 = OpIAdd %uint %91 %221
%223 = OpIAdd %uint %91 %222
%224 = OpIAdd %uint %91 %223
%225 = OpIAdd %uint %91 %224
%226 = OpIAdd %uint %91 %225
%227 = OpIAdd %uint %91 %226
%228 = OpIAdd %uint %91 %227
%229 = OpIAdd %uint %91 %228
%230 = OpIAdd %uint %91 %229
%231 = OpIAdd %uint %91 %230
%232 = OpIAdd %uint %91 %231
%233 = OpIAdd %uint %91 %232
%234 = OpIAdd %uint %91 %233
%235 = OpIAdd %uint %91 %234
%236 = OpIAdd %uint %91 %235
%result = OpIAdd %uint %91 %236
%10103 = OpAccessChain %_ptr_Uniform_uint %7 %int_0 %10102
OpStore %10103 %result
OpBranch %10100
%10100 = OpLabel
%10104 = OpLoad %int %93
%10105 = OpIAdd %int %10104 %int_1
OpStore %93 %10105
OpBranch %94
%97 = OpLabel
OpReturnValue %89
OpFunctionEnd
%10106 = OpFunction %bool None %24
%10107 = OpLabel
%10108 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
%10109 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_1
%10110 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2
%10111 = OpLoad %uint %10108
%10112 = OpLoad %uint %10109
%10113 = OpLoad %uint %10110
%10114 = OpBitwiseOr %uint %10111 %10112
%10115 = OpBitwiseOr %uint %10113 %10114
%10116 = OpIEqual %bool %10115 %uint_0
OpReturnValue %10116
OpFunctionEnd