190 instructions store_device_xy01 $12..15 = DeviceCoords.xy01 cmpeq_imm_float $12 = equal($12, 0x3F000000 (0.5)) cmpeq_imm_float $13 = equal($13, 0x3F000000 (0.5)) bitwise_and_int $12 &= $13 store_src_rg xy = src.rg init_lane_masks CondMask = LoopMask = RetMask = true copy_4_uniforms u1[0], u1[1], u1[2], u1[3] = u1[0], u1[1], u1[2], u1[3] trace_var TraceVar(u1[0], u1[1], u1[2], u1[3]) when $12 is true copy_4_uniforms u2[0], u2[1], u2[2], u2[3] = u2[0], u2[1], u2[2], u2[3] trace_var TraceVar(u2[0], u2[1], u2[2], u2[3]) when $12 is true copy_4_uniforms u3[0], u3[1], u3[2], u3[3] = u3[0], u3[1], u3[2], u3[3] trace_var TraceVar(u3[0], u3[1], u3[2], u3[3]) when $12 is true copy_4_uniforms u4[0], u4[1], u4[2], u4[3] = u4[0], u4[1], u4[2], u4[3] copy_4_uniforms u4[4], u4[5], u4[6], u4[7] = u4[4], u4[5], u4[6], u4[7] copy_4_uniforms u4[8], u4[9], u4[10], u4[11] = u4[8], u4[9], u4[10], u4[11] copy_4_uniforms u4[12], u4[13], u4[14], u4[15] = u4[12], u4[13], u4[14], u4[15] trace_var TraceVar(u4[0], u4[1], u4[2], u4[3], u4[4], u4[5], u4[6], u4[7], u4[8], u4[9], u4[10], u4[11], u4[12], u4[13], u4[14], u4[15]) when $12 is true trace_enter TraceEnter(float4 main(float2 xy)) when $12 is true trace_var TraceVar(xy) when $12 is true copy_constant $0 = 0 copy_slot_unmasked $1 = $12 copy_slot_masked $0 = Mask($1) trace_scope TraceScope(+1) when $0 is true trace_line TraceLine(38) when $12 is true trace_enter TraceEnter(float index_by_literal()) when $12 is true copy_constant $1 = 0 copy_slot_unmasked $2 = $12 copy_slot_masked $1 = Mask($2) trace_scope TraceScope(+1) when $1 is true trace_line TraceLine(5) when $12 is true copy_uniform [index_by_literal].result = u1[0] trace_var TraceVar([index_by_literal].result) when $12 is true trace_scope TraceScope(-1) when $1 is true trace_exit TraceExit(float index_by_literal()) when $12 is true copy_slot_unmasked $1 = [index_by_literal].result label label 0 trace_enter TraceEnter(float index_by_loop()) when $12 is true copy_constant $2 = 0 copy_slot_unmasked $3 = $12 copy_slot_masked $2 = Mask($3) trace_scope TraceScope(+1) when $2 is true trace_line TraceLine(10) when $12 is true copy_constant sum = 0 trace_var TraceVar(sum) when $12 is true copy_constant $3 = 0 copy_slot_unmasked $4 = $12 copy_slot_masked $3 = Mask($4) trace_scope TraceScope(+1) when $3 is true trace_line TraceLine(11) when $12 is true copy_constant i = 0x00000003 (4.203895e-45) trace_var TraceVar(i) when $12 is true label label 0x00000003 copy_constant $4 = 0 copy_slot_unmasked $5 = $12 copy_slot_masked $4 = Mask($5) trace_scope TraceScope(+1) when $4 is true trace_line TraceLine(12) when $12 is true copy_slot_unmasked $5 = sum copy_slot_unmasked $16 = i copy_from_indirect_uniform_unm $6 = Indirect(u2[0] + $16) add_float $5 += $6 copy_slot_unmasked sum = $5 trace_var TraceVar(sum) when $12 is true trace_scope TraceScope(-1) when $4 is true trace_line TraceLine(11) when $12 is true copy_slot_unmasked $4 = i add_imm_int $4 += 0xFFFFFFFF copy_slot_unmasked i = $4 trace_var TraceVar(i) when $12 is true copy_constant $4 = 0 copy_slot_unmasked $5 = i cmple_int $4 = lessThanEqual($4, $5) stack_rewind branch_if_no_active_lanes_eq branch -22 (label 3 at #52) if no lanes of $4 == 0 label label 0x00000002 trace_scope TraceScope(-1) when $3 is true trace_line TraceLine(14) when $12 is true copy_slot_unmasked [index_by_loop].result = sum trace_var TraceVar([index_by_loop].result) when $12 is true trace_scope TraceScope(-1) when $2 is true trace_exit TraceExit(float index_by_loop()) when $12 is true copy_slot_unmasked $2 = [index_by_loop].result label label 0x00000001 trace_enter TraceEnter(float index_by_complex_loop()) when $12 is true copy_constant $3 = 0 copy_slot_unmasked $4 = $12 copy_slot_masked $3 = Mask($4) trace_scope TraceScope(+1) when $3 is true trace_line TraceLine(19) when $12 is true copy_constant prod = 0x3F800000 (1.0) trace_var TraceVar(prod) when $12 is true copy_constant $4 = 0 copy_slot_unmasked $5 = $12 copy_slot_masked $4 = Mask($5) trace_scope TraceScope(+1) when $4 is true trace_line TraceLine(20) when $12 is true copy_constant i₁ = 0 trace_var TraceVar(i₁) when $12 is true label label 0x00000006 copy_constant $5 = 0 copy_slot_unmasked $6 = $12 copy_slot_masked $5 = Mask($6) trace_scope TraceScope(+1) when $5 is true trace_line TraceLine(21) when $12 is true copy_slot_unmasked $6 = prod copy_slot_unmasked $16 = i₁ cmplt_imm_int $16 = lessThan($16, 0x00000002) copy_slot_unmasked $17 = i₁ copy_constant $18 = 0 mix_int $16 = mix($17, $18, $16) copy_from_indirect_uniform_unm $7 = Indirect(u3[0] + $16) mul_float $6 *= $7 copy_slot_unmasked prod = $6 trace_var TraceVar(prod) when $12 is true trace_scope TraceScope(-1) when $5 is true trace_line TraceLine(20) when $12 is true copy_slot_unmasked $5 = i₁ add_imm_int $5 += 0x00000001 copy_slot_unmasked i₁ = $5 trace_var TraceVar(i₁) when $12 is true copy_slot_unmasked $5 = i₁ cmplt_imm_int $5 = lessThan($5, 0x00000004) stack_rewind branch_if_no_active_lanes_eq branch -25 (label 6 at #99) if no lanes of $5 == 0 label label 0x00000005 trace_scope TraceScope(-1) when $4 is true trace_line TraceLine(23) when $12 is true copy_slot_unmasked [index_by_complex_loop].result = prod trace_var TraceVar([index_by_complex_loop].result) when $12 is true trace_scope TraceScope(-1) when $3 is true trace_exit TraceExit(float index_by_complex_loop()) when $12 is true copy_slot_unmasked $3 = [index_by_complex_loop].result label label 0x00000004 trace_enter TraceEnter(float index_out_of_bounds_checked()) when $12 is true copy_constant $4 = 0 copy_slot_unmasked $5 = $12 copy_slot_masked $4 = Mask($5) trace_scope TraceScope(+1) when $4 is true trace_line TraceLine(28) when $12 is true copy_constant sum₁ = 0 trace_var TraceVar(sum₁) when $12 is true copy_constant $5 = 0 copy_slot_unmasked $6 = $12 copy_slot_masked $5 = Mask($6) trace_scope TraceScope(+1) when $5 is true trace_line TraceLine(29) when $12 is true copy_constant f = 0xC0133333 (-2.3) trace_var TraceVar(f) when $12 is true label label 0x0000000A copy_constant $6 = 0 copy_slot_unmasked $7 = $12 copy_slot_masked $6 = Mask($7) trace_scope TraceScope(+1) when $6 is true trace_line TraceLine(30) when $12 is true store_condition_mask $7 = CondMask copy_constant $8 = 0 copy_slot_unmasked $9 = f cmplt_float $8 = lessThan($8, $9) copy_slot_unmasked $9 = f cmplt_imm_float $9 = lessThan($9, 0x41800000 (16.0)) bitwise_and_int $8 &= $9 merge_condition_mask CondMask = $7 & $8 copy_constant $9 = 0 copy_slot_unmasked $10 = $12 copy_slot_masked $9 = Mask($10) trace_scope TraceScope(+1) when $9 is true trace_line TraceLine(31) when $12 is true copy_slot_unmasked $10 = sum₁ copy_slot_unmasked $16 = f cast_to_int_from_float $16 = FloatToInt($16) copy_from_indirect_uniform_unm $11 = Indirect(u4[0] + $16) sub_float $10 -= $11 copy_slot_masked sum₁ = Mask($10) trace_var TraceVar(sum₁) when $12 is true trace_scope TraceScope(-1) when $9 is true load_condition_mask CondMask = $7 trace_scope TraceScope(-1) when $6 is true trace_line TraceLine(29) when $12 is true copy_slot_unmasked $6 = f add_imm_float $6 += 0x406CCCCD (3.7) copy_slot_unmasked f = $6 trace_var TraceVar(f) when $12 is true copy_slot_unmasked $6 = f cmplt_imm_float $6 = lessThan($6, 0x41880000 (17.0)) stack_rewind branch_if_no_active_lanes_eq branch -37 (label 10 at #149) if no lanes of $6 == 0 label label 0x00000009 trace_scope TraceScope(-1) when $5 is true trace_line TraceLine(34) when $12 is true copy_slot_unmasked [index_out_of_bounds_checked].result = sum₁ trace_var TraceVar([index_out_of_bounds_checked].result) when $12 is true trace_scope TraceScope(-1) when $4 is true trace_exit TraceExit(float index_out_of_bounds_checked()) when $12 is true copy_slot_unmasked $4 = [index_out_of_bounds_checked].result label label 0x00000008 copy_4_slots_unmasked [main].result = $1..4 trace_var TraceVar([main].result) when $12 is true trace_scope TraceScope(-1) when $0 is true trace_exit TraceExit(float4 main(float2 xy)) when $12 is true load_src src.rgba = [main].result