Created
February 14, 2023 05:02
-
-
Save pashu123/4d32cf56fe1751de4a8170675fd23ec3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; SPIR-V | |
; Version: 1.3 | |
; Generator: Khronos; 22 | |
; Bound: 356 | |
; Schema: 0 | |
OpCapability Int64 | |
OpCapability Shader | |
OpCapability GroupNonUniformShuffle | |
OpExtension "SPV_KHR_storage_buffer_storage_class" | |
%105 = OpExtInstImport "GLSL.std.450" | |
OpMemoryModel Logical GLSL450 | |
OpEntryPoint GLCompute %forward_dispatch_43 "forward_dispatch_43" %__builtin_var_LocalInvocationId__ %__builtin_var_WorkgroupId__ | |
OpExecutionMode %forward_dispatch_43 LocalSize 256 1 1 | |
OpName %__workgroup_mem__6 "__workgroup_mem__6" | |
OpName %__workgroup_mem__5 "__workgroup_mem__5" | |
OpName %__workgroup_mem__4 "__workgroup_mem__4" | |
OpName %__builtin_var_WorkgroupId__ "__builtin_var_WorkgroupId__" | |
OpName %__builtin_var_LocalInvocationId__ "__builtin_var_LocalInvocationId__" | |
OpName %__resource_var_0_0_ "__resource_var_0_0_" | |
OpName %__resource_var_0_1_ "__resource_var_0_1_" | |
OpName %forward_dispatch_43 "forward_dispatch_43" | |
OpDecorate %__builtin_var_WorkgroupId__ BuiltIn WorkgroupId | |
OpDecorate %__builtin_var_LocalInvocationId__ BuiltIn LocalInvocationId | |
OpDecorate %_runtimearr_v4float ArrayStride 16 | |
OpMemberDecorate %_struct_18 0 Offset 0 | |
OpDecorate %_struct_18 Block | |
OpDecorate %__resource_var_0_0_ Binding 0 | |
OpDecorate %__resource_var_0_0_ DescriptorSet 0 | |
OpDecorate %__resource_var_0_1_ Binding 1 | |
OpDecorate %__resource_var_0_1_ DescriptorSet 0 | |
%float = OpTypeFloat 32 | |
%uint = OpTypeInt 32 0 | |
%uint_8 = OpConstant %uint 8 | |
%_arr_float_uint_8 = OpTypeArray %float %uint_8 | |
%_struct_2 = OpTypeStruct %_arr_float_uint_8 | |
%_ptr_Workgroup__struct_2 = OpTypePointer Workgroup %_struct_2 | |
%__workgroup_mem__6 = OpVariable %_ptr_Workgroup__struct_2 Workgroup | |
%__workgroup_mem__5 = OpVariable %_ptr_Workgroup__struct_2 Workgroup | |
%__workgroup_mem__4 = OpVariable %_ptr_Workgroup__struct_2 Workgroup | |
%v3uint = OpTypeVector %uint 3 | |
%_ptr_Input_v3uint = OpTypePointer Input %v3uint | |
%__builtin_var_WorkgroupId__ = OpVariable %_ptr_Input_v3uint Input | |
%ulong = OpTypeInt 64 0 | |
%v3ulong = OpTypeVector %ulong 3 | |
%_ptr_Input_v3ulong = OpTypePointer Input %v3ulong | |
%__builtin_var_LocalInvocationId__ = OpVariable %_ptr_Input_v3ulong Input | |
%v4float = OpTypeVector %float 4 | |
%_runtimearr_v4float = OpTypeRuntimeArray %v4float | |
%_struct_18 = OpTypeStruct %_runtimearr_v4float | |
%_ptr_StorageBuffer__struct_18 = OpTypePointer StorageBuffer %_struct_18 | |
%__resource_var_0_0_ = OpVariable %_ptr_StorageBuffer__struct_18 StorageBuffer | |
%__resource_var_0_1_ = OpVariable %_ptr_StorageBuffer__struct_18 StorageBuffer | |
%void = OpTypeVoid | |
%23 = OpTypeFunction %void | |
%ulong_5898240 = OpConstant %ulong 5898240 | |
%ulong_2304 = OpConstant %ulong 2304 | |
%ulong_21233664 = OpConstant %ulong 21233664 | |
%ulong_18446744073709551615 = OpConstant %ulong 18446744073709551615 | |
%ulong_4 = OpConstant %ulong 4 | |
%ulong_0 = OpConstant %ulong 0 | |
%float_0_693147182 = OpConstant %float 0.693147182 | |
%33 = OpConstantComposite %v4float %float_0_693147182 %float_0_693147182 %float_0_693147182 %float_0_693147182 | |
%float_1_44269502 = OpConstant %float 1.44269502 | |
%35 = OpConstantComposite %v4float %float_1_44269502 %float_1_44269502 %float_1_44269502 %float_1_44269502 | |
%float_1 = OpConstant %float 1 | |
%37 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 | |
%float_0_499705136 = OpConstant %float 0.499705136 | |
%39 = OpConstantComposite %v4float %float_0_499705136 %float_0_499705136 %float_0_499705136 %float_0_499705136 | |
%float_0_168738902 = OpConstant %float 0.168738902 | |
%41 = OpConstantComposite %v4float %float_0_168738902 %float_0_168738902 %float_0_168738902 %float_0_168738902 | |
%float_0_0366896503 = OpConstant %float 0.0366896503 | |
%43 = OpConstantComposite %v4float %float_0_0366896503 %float_0_0366896503 %float_0_0366896503 %float_0_0366896503 | |
%float_0_0131435003 = OpConstant %float 0.0131435003 | |
%45 = OpConstantComposite %v4float %float_0_0131435003 %float_0_0131435003 %float_0_0131435003 %float_0_0131435003 | |
%v4uint = OpTypeVector %uint 4 | |
%uint_23 = OpConstant %uint 23 | |
%48 = OpConstantComposite %v4uint %uint_23 %uint_23 %uint_23 %uint_23 | |
%float_0x1p_128 = OpConstant %float 0x1p+128 | |
%50 = OpConstantComposite %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 | |
%float_1_17549435en38 = OpConstant %float 1.17549435e-38 | |
%52 = OpConstantComposite %v4float %float_1_17549435en38 %float_1_17549435en38 %float_1_17549435en38 %float_1_17549435en38 | |
%uint_127 = OpConstant %uint 127 | |
%54 = OpConstantComposite %v4uint %uint_127 %uint_127 %uint_127 %uint_127 | |
%uint_4294967169 = OpConstant %uint 4294967169 | |
%56 = OpConstantComposite %v4uint %uint_4294967169 %uint_4294967169 %uint_4294967169 %uint_4294967169 | |
%float_n0x1p_128 = OpConstant %float -0x1p+128 | |
%58 = OpConstantComposite %v4float %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128 | |
%uint_1 = OpConstant %uint 1 | |
%uint_2 = OpConstant %uint 2 | |
%uint_4 = OpConstant %uint 4 | |
%uint_16 = OpConstant %uint 16 | |
%ulong_32 = OpConstant %ulong 32 | |
%ulong_7 = OpConstant %ulong 7 | |
%uint_0 = OpConstant %uint 0 | |
%float_0 = OpConstant %float 0 | |
%67 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 | |
%ulong_1024 = OpConstant %ulong 1024 | |
%ulong_9216 = OpConstant %ulong 9216 | |
%float_n1_00000002e_30 = OpConstant %float -1.00000002e+30 | |
%_ptr_Function_v4float = OpTypePointer Function %v4float | |
%bool = OpTypeBool | |
%_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float | |
%v4bool = OpTypeVector %bool 4 | |
%uint_3 = OpConstant %uint 3 | |
%_ptr_Workgroup_float = OpTypePointer Workgroup %float | |
%uint_264 = OpConstant %uint 264 | |
%forward_dispatch_43 = OpFunction %void None %23 | |
%26 = OpLabel | |
%81 = OpVariable %_ptr_Function_v4float Function | |
%188 = OpVariable %_ptr_Function_v4float Function | |
%72 = OpLoad %v3ulong %__builtin_var_LocalInvocationId__ | |
%73 = OpCompositeExtract %ulong %72 0 | |
%74 = OpLoad %v3uint %__builtin_var_WorkgroupId__ | |
%75 = OpCompositeExtract %uint %74 0 | |
%76 = OpUConvert %ulong %75 | |
%77 = OpLoad %v3uint %__builtin_var_WorkgroupId__ | |
%78 = OpCompositeExtract %uint %77 1 | |
%79 = OpUConvert %ulong %78 | |
OpBranch %82 | |
%82 = OpLabel | |
%85 = OpPhi %ulong %111 %83 %ulong_0 %26 | |
%86 = OpPhi %v4float %110 %83 %58 %26 | |
%88 = OpSLessThan %bool %85 %ulong_9216 | |
OpLoopMerge %84 %83 None | |
OpBranchConditional %88 %83 %84 | |
%83 = OpLabel | |
%89 = OpSLessThan %bool %85 %ulong_0 | |
%90 = OpISub %ulong %ulong_18446744073709551615 %85 | |
%91 = OpSelect %ulong %89 %90 %85 | |
%92 = OpSDiv %ulong %91 %ulong_4 | |
%93 = OpISub %ulong %ulong_18446744073709551615 %92 | |
%94 = OpSelect %ulong %89 %93 %92 | |
%95 = OpIMul %ulong %79 %ulong_21233664 | |
%96 = OpIAdd %ulong %73 %95 | |
%97 = OpIMul %ulong %76 %ulong_2304 | |
%98 = OpIAdd %ulong %96 %97 | |
%99 = OpIAdd %ulong %94 %98 | |
%100 = OpIAdd %ulong %99 %ulong_5898240 | |
%102 = OpAccessChain %_ptr_StorageBuffer_v4float %__resource_var_0_0_ %ulong_0 %100 | |
%103 = OpLoad %v4float %102 | |
%104 = OpExtInst %v4float %105 FMax %103 %86 | |
%107 = OpIsNan %v4bool %103 | |
%108 = OpIsNan %v4bool %86 | |
%109 = OpSelect %v4float %107 %103 %104 | |
%110 = OpSelect %v4float %108 %86 %109 | |
OpStore %81 %110 | |
%111 = OpIAdd %ulong %85 %ulong_1024 | |
OpBranch %82 | |
%84 = OpLabel | |
%112 = OpLoad %v4float %81 | |
%113 = OpCompositeExtract %float %112 0 | |
%114 = OpCompositeExtract %float %112 1 | |
%115 = OpCompositeExtract %float %112 2 | |
%116 = OpCompositeExtract %float %112 3 | |
%117 = OpExtInst %float %105 FMax %113 %114 | |
%118 = OpExtInst %float %105 FMax %117 %115 | |
%119 = OpExtInst %float %105 FMax %118 %116 | |
%120 = OpGroupNonUniformShuffleXor %float %uint_3 %119 %uint_1 | |
%122 = OpExtInst %float %105 FMax %119 %120 | |
%123 = OpIsNan %bool %119 | |
%124 = OpIsNan %bool %120 | |
%125 = OpSelect %float %123 %119 %122 | |
%126 = OpSelect %float %124 %120 %125 | |
%127 = OpGroupNonUniformShuffleXor %float %uint_3 %126 %uint_2 | |
%128 = OpExtInst %float %105 FMax %126 %127 | |
%129 = OpIsNan %bool %126 | |
%130 = OpIsNan %bool %127 | |
%131 = OpSelect %float %129 %126 %128 | |
%132 = OpSelect %float %130 %127 %131 | |
%133 = OpGroupNonUniformShuffleXor %float %uint_3 %132 %uint_4 | |
%134 = OpExtInst %float %105 FMax %132 %133 | |
%135 = OpIsNan %bool %132 | |
%136 = OpIsNan %bool %133 | |
%137 = OpSelect %float %135 %132 %134 | |
%138 = OpSelect %float %136 %133 %137 | |
%139 = OpGroupNonUniformShuffleXor %float %uint_3 %138 %uint_8 | |
%140 = OpExtInst %float %105 FMax %138 %139 | |
%141 = OpIsNan %bool %138 | |
%142 = OpIsNan %bool %139 | |
%143 = OpSelect %float %141 %138 %140 | |
%144 = OpSelect %float %142 %139 %143 | |
%145 = OpGroupNonUniformShuffleXor %float %uint_3 %144 %uint_16 | |
%146 = OpExtInst %float %105 FMax %144 %145 | |
%147 = OpIsNan %bool %144 | |
%148 = OpIsNan %bool %145 | |
%149 = OpSelect %float %147 %144 %146 | |
%150 = OpSelect %float %148 %145 %149 | |
%151 = OpUDiv %ulong %73 %ulong_32 | |
%152 = OpUMod %ulong %73 %ulong_32 | |
%153 = OpIEqual %bool %152 %ulong_0 | |
OpBranch %154 | |
%154 = OpLabel | |
OpSelectionMerge %156 None | |
OpBranchConditional %153 %155 %156 | |
%155 = OpLabel | |
%158 = OpAccessChain %_ptr_Workgroup_float %__workgroup_mem__4 %ulong_0 %151 | |
OpStore %158 %150 | |
OpBranch %156 | |
%156 = OpLabel | |
OpControlBarrier %uint_2 %uint_2 %uint_264 | |
%160 = OpExtInst %ulong %105 UMin %152 %ulong_7 | |
%161 = OpAccessChain %_ptr_Workgroup_float %__workgroup_mem__4 %ulong_0 %160 | |
%162 = OpLoad %float %161 | |
%163 = OpGroupNonUniformShuffleXor %float %uint_3 %162 %uint_1 | |
%164 = OpExtInst %float %105 FMax %162 %163 | |
%165 = OpIsNan %bool %162 | |
%166 = OpIsNan %bool %163 | |
%167 = OpSelect %float %165 %162 %164 | |
%168 = OpSelect %float %166 %163 %167 | |
%169 = OpGroupNonUniformShuffleXor %float %uint_3 %168 %uint_2 | |
%170 = OpExtInst %float %105 FMax %168 %169 | |
%171 = OpIsNan %bool %168 | |
%172 = OpIsNan %bool %169 | |
%173 = OpSelect %float %171 %168 %170 | |
%174 = OpSelect %float %172 %169 %173 | |
%175 = OpGroupNonUniformShuffleXor %float %uint_3 %174 %uint_4 | |
%176 = OpExtInst %float %105 FMax %174 %175 | |
%177 = OpIsNan %bool %174 | |
%178 = OpIsNan %bool %175 | |
%179 = OpSelect %float %177 %174 %176 | |
%180 = OpSelect %float %178 %175 %179 | |
%181 = OpGroupNonUniformShuffle %float %uint_3 %180 %uint_0 | |
%182 = OpExtInst %float %105 FMax %181 %float_n1_00000002e_30 | |
%183 = OpIsNan %bool %181 | |
%184 = OpIsNan %bool %float_n1_00000002e_30 | |
%185 = OpSelect %float %183 %181 %182 | |
%186 = OpSelect %float %184 %float_n1_00000002e_30 %185 | |
%187 = OpCompositeConstruct %v4float %186 %186 %186 %186 | |
OpBranch %189 | |
%189 = OpLabel | |
%192 = OpPhi %ulong %240 %190 %ulong_0 %156 | |
%193 = OpPhi %v4float %239 %190 %67 %156 | |
%194 = OpSLessThan %bool %192 %ulong_9216 | |
OpLoopMerge %191 %190 None | |
OpBranchConditional %194 %190 %191 | |
%190 = OpLabel | |
%195 = OpSLessThan %bool %192 %ulong_0 | |
%196 = OpISub %ulong %ulong_18446744073709551615 %192 | |
%197 = OpSelect %ulong %195 %196 %192 | |
%198 = OpSDiv %ulong %197 %ulong_4 | |
%199 = OpISub %ulong %ulong_18446744073709551615 %198 | |
%200 = OpSelect %ulong %195 %199 %198 | |
%201 = OpIMul %ulong %79 %ulong_21233664 | |
%202 = OpIAdd %ulong %73 %201 | |
%203 = OpIMul %ulong %76 %ulong_2304 | |
%204 = OpIAdd %ulong %202 %203 | |
%205 = OpIAdd %ulong %200 %204 | |
%206 = OpIAdd %ulong %205 %ulong_5898240 | |
%207 = OpAccessChain %_ptr_StorageBuffer_v4float %__resource_var_0_0_ %ulong_0 %206 | |
%208 = OpLoad %v4float %207 | |
%209 = OpFSub %v4float %208 %187 | |
%210 = OpIsNan %v4bool %209 | |
%211 = OpLogicalOr %v4bool %210 %210 | |
%212 = OpFMul %v4float %209 %35 | |
%213 = OpExtInst %v4float %105 Floor %212 | |
%214 = OpFMul %v4float %213 %33 | |
%215 = OpFSub %v4float %209 %214 | |
%216 = OpFMul %v4float %215 %215 | |
%217 = OpFMul %v4float %216 %216 | |
%218 = OpExtInst %v4float %105 Fma %37 %215 %37 | |
%219 = OpExtInst %v4float %105 Fma %41 %215 %39 | |
%220 = OpExtInst %v4float %105 Fma %45 %215 %43 | |
%221 = OpExtInst %v4float %105 Fma %219 %216 %218 | |
%222 = OpExtInst %v4float %105 Fma %220 %217 %221 | |
%223 = OpConvertFToS %v4uint %213 | |
%224 = OpIAdd %v4uint %223 %54 | |
%225 = OpShiftLeftLogical %v4uint %224 %48 | |
%226 = OpBitcast %v4float %225 | |
%227 = OpFMul %v4float %222 %226 | |
%228 = OpSLessThanEqual %v4bool %223 %54 | |
%229 = OpSGreaterThanEqual %v4bool %223 %56 | |
%230 = OpFOrdEqual %v4bool %209 %58 | |
%231 = OpFOrdEqual %v4bool %209 %50 | |
%232 = OpFOrdGreaterThan %v4bool %209 %67 | |
%233 = OpLogicalAnd %v4bool %228 %229 | |
%234 = OpSelect %v4float %232 %50 %52 | |
%235 = OpSelect %v4float %233 %227 %234 | |
%236 = OpSelect %v4float %231 %50 %235 | |
%237 = OpSelect %v4float %230 %67 %236 | |
%238 = OpSelect %v4float %211 %209 %237 | |
%239 = OpFAdd %v4float %238 %193 | |
OpStore %188 %239 | |
%240 = OpIAdd %ulong %192 %ulong_1024 | |
OpBranch %189 | |
%191 = OpLabel | |
%241 = OpLoad %v4float %188 | |
%242 = OpCompositeExtract %float %241 0 | |
%243 = OpCompositeExtract %float %241 1 | |
%244 = OpCompositeExtract %float %241 2 | |
%245 = OpCompositeExtract %float %241 3 | |
%246 = OpFAdd %float %242 %243 | |
%247 = OpFAdd %float %246 %244 | |
%248 = OpFAdd %float %247 %245 | |
%249 = OpGroupNonUniformShuffleXor %float %uint_3 %248 %uint_1 | |
%250 = OpFAdd %float %248 %249 | |
%251 = OpGroupNonUniformShuffleXor %float %uint_3 %250 %uint_2 | |
%252 = OpFAdd %float %250 %251 | |
%253 = OpGroupNonUniformShuffleXor %float %uint_3 %252 %uint_4 | |
%254 = OpFAdd %float %252 %253 | |
%255 = OpGroupNonUniformShuffleXor %float %uint_3 %254 %uint_8 | |
%256 = OpFAdd %float %254 %255 | |
%257 = OpGroupNonUniformShuffleXor %float %uint_3 %256 %uint_16 | |
%258 = OpFAdd %float %256 %257 | |
OpBranch %259 | |
%259 = OpLabel | |
OpSelectionMerge %261 None | |
OpBranchConditional %153 %260 %261 | |
%260 = OpLabel | |
%262 = OpAccessChain %_ptr_Workgroup_float %__workgroup_mem__5 %ulong_0 %151 | |
OpStore %262 %258 | |
OpBranch %261 | |
%261 = OpLabel | |
OpControlBarrier %uint_2 %uint_2 %uint_264 | |
%263 = OpAccessChain %_ptr_Workgroup_float %__workgroup_mem__5 %ulong_0 %160 | |
%264 = OpLoad %float %263 | |
%265 = OpGroupNonUniformShuffleXor %float %uint_3 %264 %uint_1 | |
%266 = OpFAdd %float %264 %265 | |
%267 = OpGroupNonUniformShuffleXor %float %uint_3 %266 %uint_2 | |
%268 = OpFAdd %float %266 %267 | |
%269 = OpGroupNonUniformShuffleXor %float %uint_3 %268 %uint_4 | |
%270 = OpFAdd %float %268 %269 | |
%271 = OpGroupNonUniformShuffle %float %uint_3 %270 %uint_0 | |
%272 = OpFAdd %float %271 %float_0 | |
OpBranch %273 | |
%273 = OpLabel | |
OpSelectionMerge %275 None | |
OpBranchConditional %153 %274 %275 | |
%274 = OpLabel | |
%276 = OpAccessChain %_ptr_Workgroup_float %__workgroup_mem__6 %ulong_0 %151 | |
OpStore %276 %150 | |
OpBranch %275 | |
%275 = OpLabel | |
OpControlBarrier %uint_2 %uint_2 %uint_264 | |
%277 = OpAccessChain %_ptr_Workgroup_float %__workgroup_mem__6 %ulong_0 %160 | |
%278 = OpLoad %float %277 | |
%279 = OpGroupNonUniformShuffleXor %float %uint_3 %278 %uint_1 | |
%280 = OpExtInst %float %105 FMax %278 %279 | |
%281 = OpIsNan %bool %278 | |
%282 = OpIsNan %bool %279 | |
%283 = OpSelect %float %281 %278 %280 | |
%284 = OpSelect %float %282 %279 %283 | |
%285 = OpGroupNonUniformShuffleXor %float %uint_3 %284 %uint_2 | |
%286 = OpExtInst %float %105 FMax %284 %285 | |
%287 = OpIsNan %bool %284 | |
%288 = OpIsNan %bool %285 | |
%289 = OpSelect %float %287 %284 %286 | |
%290 = OpSelect %float %288 %285 %289 | |
%291 = OpGroupNonUniformShuffleXor %float %uint_3 %290 %uint_4 | |
%292 = OpExtInst %float %105 FMax %290 %291 | |
%293 = OpIsNan %bool %290 | |
%294 = OpIsNan %bool %291 | |
%295 = OpSelect %float %293 %290 %292 | |
%296 = OpSelect %float %294 %291 %295 | |
%297 = OpGroupNonUniformShuffle %float %uint_3 %296 %uint_0 | |
%298 = OpExtInst %float %105 FMax %297 %float_n1_00000002e_30 | |
%299 = OpIsNan %bool %297 | |
%300 = OpSelect %float %299 %297 %298 | |
%301 = OpSelect %float %184 %float_n1_00000002e_30 %300 | |
%302 = OpCompositeConstruct %v4float %272 %272 %272 %272 | |
%303 = OpCompositeConstruct %v4float %301 %301 %301 %301 | |
OpBranch %304 | |
%304 = OpLabel | |
%307 = OpPhi %ulong %355 %305 %ulong_0 %275 | |
%308 = OpSLessThan %bool %307 %ulong_9216 | |
OpLoopMerge %306 %305 None | |
OpBranchConditional %308 %305 %306 | |
%305 = OpLabel | |
%309 = OpSLessThan %bool %307 %ulong_0 | |
%310 = OpISub %ulong %ulong_18446744073709551615 %307 | |
%311 = OpSelect %ulong %309 %310 %307 | |
%312 = OpSDiv %ulong %311 %ulong_4 | |
%313 = OpISub %ulong %ulong_18446744073709551615 %312 | |
%314 = OpSelect %ulong %309 %313 %312 | |
%315 = OpIMul %ulong %79 %ulong_21233664 | |
%316 = OpIAdd %ulong %73 %315 | |
%317 = OpIMul %ulong %76 %ulong_2304 | |
%318 = OpIAdd %ulong %316 %317 | |
%319 = OpIAdd %ulong %314 %318 | |
%320 = OpIAdd %ulong %319 %ulong_5898240 | |
%321 = OpAccessChain %_ptr_StorageBuffer_v4float %__resource_var_0_0_ %ulong_0 %320 | |
%322 = OpLoad %v4float %321 | |
%323 = OpFSub %v4float %322 %303 | |
%324 = OpIsNan %v4bool %323 | |
%325 = OpLogicalOr %v4bool %324 %324 | |
%326 = OpFMul %v4float %323 %35 | |
%327 = OpExtInst %v4float %105 Floor %326 | |
%328 = OpFMul %v4float %327 %33 | |
%329 = OpFSub %v4float %323 %328 | |
%330 = OpFMul %v4float %329 %329 | |
%331 = OpFMul %v4float %330 %330 | |
%332 = OpExtInst %v4float %105 Fma %37 %329 %37 | |
%333 = OpExtInst %v4float %105 Fma %41 %329 %39 | |
%334 = OpExtInst %v4float %105 Fma %45 %329 %43 | |
%335 = OpExtInst %v4float %105 Fma %333 %330 %332 | |
%336 = OpExtInst %v4float %105 Fma %334 %331 %335 | |
%337 = OpConvertFToS %v4uint %327 | |
%338 = OpIAdd %v4uint %337 %54 | |
%339 = OpShiftLeftLogical %v4uint %338 %48 | |
%340 = OpBitcast %v4float %339 | |
%341 = OpFMul %v4float %336 %340 | |
%342 = OpSLessThanEqual %v4bool %337 %54 | |
%343 = OpSGreaterThanEqual %v4bool %337 %56 | |
%344 = OpFOrdEqual %v4bool %323 %58 | |
%345 = OpFOrdEqual %v4bool %323 %50 | |
%346 = OpFOrdGreaterThan %v4bool %323 %67 | |
%347 = OpLogicalAnd %v4bool %342 %343 | |
%348 = OpSelect %v4float %346 %50 %52 | |
%349 = OpSelect %v4float %347 %341 %348 | |
%350 = OpSelect %v4float %345 %50 %349 | |
%351 = OpSelect %v4float %344 %67 %350 | |
%352 = OpSelect %v4float %325 %323 %351 | |
%353 = OpFDiv %v4float %352 %302 | |
%354 = OpAccessChain %_ptr_StorageBuffer_v4float %__resource_var_0_1_ %ulong_0 %319 | |
OpStore %354 %353 | |
%355 = OpIAdd %ulong %307 %ulong_1024 | |
OpBranch %304 | |
%306 = OpLabel | |
OpReturn | |
OpFunctionEnd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment