673 instructions [immutable slots] i0 = 0x00000009 (1.261169e-44) i1 = 0x00000001 (1.401298e-45) i2 = 0x00000002 (2.802597e-45) i3 = 0x00000003 (4.203895e-45) i4 = 0x00000009 (1.261169e-44) i5 = 0x00000003 (4.203895e-45) i6 = 0x00000002 (2.802597e-45) i7 = 0x00000001 (1.401298e-45) i8 = 0x00000009 (1.261169e-44) i9 = 0x00000009 (1.261169e-44) i10 = 0x00000009 (1.261169e-44) i11 = 0x00000001 (1.401298e-45) store_device_xy01 $13..16 = DeviceCoords.xy01 cmpeq_imm_float $13 = equal($13, 0x3F000000 (0.5)) cmpeq_imm_float $14 = equal($14, 0x3F000000 (0.5)) bitwise_and_int $13 &= $14 store_src_rg pos = src.rg init_lane_masks CondMask = LoopMask = RetMask = true copy_4_uniforms colorRed = colorRed trace_var TraceVar(colorRed) when $13 is true copy_4_uniforms colorGreen = colorGreen trace_var TraceVar(colorGreen) when $13 is true copy_constant kZero = 0 trace_var TraceVar(kZero) when $13 is true copy_constant kTen = 0x0000000A (1.401298e-44) trace_var TraceVar(kTen) when $13 is true trace_enter TraceEnter(half4 main(float2 pos)) when $13 is true trace_var TraceVar(pos) when $13 is true copy_constant $0 = 0 copy_slot_unmasked $1 = $13 copy_slot_masked $0 = Mask($1) trace_scope TraceScope(+1) when $0 is true trace_line TraceLine(130) when $13 is true copy_slot_unmasked $1 = pos(0) copy_uniform $2 = colorGreen(1) max_float $1 = max($1, $2) copy_uniform $2 = colorGreen(3) min_float $1 = min($1, $2) cast_to_int_from_float $1 = FloatToInt($1) mul_imm_int $1 *= 0x00000005 copy_slot_unmasked five = $1 trace_var TraceVar(five) when $13 is true trace_line TraceLine(134) when $13 is true store_condition_mask $17 = CondMask store_condition_mask $28 = CondMask store_condition_mask $41 = CondMask store_condition_mask $54 = CondMask store_condition_mask $67 = CondMask store_condition_mask $80 = CondMask store_condition_mask $90 = CondMask store_condition_mask $100 = CondMask branch_if_no_lanes_active branch_if_no_lanes_active +62 (label 9 at #102) trace_enter TraceEnter(int return_loop(int five)) when $13 is true store_return_mask $101 = RetMask copy_constant $102 = 0 copy_slot_unmasked $103 = $13 copy_slot_masked $102 = Mask($103) trace_scope TraceScope(+1) when $102 is true copy_constant $103 = 0 copy_slot_unmasked $104 = $13 copy_slot_masked $103 = Mask($104) trace_scope TraceScope(+1) when $103 is true trace_line TraceLine(8) when $13 is true copy_constant i = 0 trace_var TraceVar(i) when $13 is true store_loop_mask $104 = LoopMask jump jump +29 (label 11 at #84) label label 0x0000000C copy_constant $105 = 0 copy_slot_unmasked $106 = $13 copy_slot_masked $105 = Mask($106) trace_scope TraceScope(+1) when $105 is true trace_line TraceLine(9) when $13 is true store_condition_mask $106 = CondMask copy_slot_unmasked $107 = i copy_slot_unmasked $108 = five cmpeq_int $107 = equal($107, $108) merge_condition_mask CondMask = $106 & $107 copy_constant $108 = 0 copy_slot_unmasked $109 = $13 copy_slot_masked $108 = Mask($109) trace_scope TraceScope(+1) when $108 is true trace_line TraceLine(9) when $13 is true copy_slot_unmasked $109 = i copy_slot_masked [return_loop].result = Mask($109) trace_var TraceVar([return_loop].result) when $13 is true mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) trace_scope TraceScope(-1) when $108 is true load_condition_mask CondMask = $106 trace_scope TraceScope(-1) when $105 is true trace_line TraceLine(8) when $13 is true copy_slot_unmasked $105 = i add_imm_int $105 += 0x00000001 copy_slot_masked i = Mask($105) trace_var TraceVar(i) when $13 is true label label 0x0000000B copy_slot_unmasked $105 = i cmplt_imm_int $105 = lessThan($105, 0x0000000A) merge_loop_mask LoopMask &= $105 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -33 (label 12 at #56) label label 0x0000000A load_loop_mask LoopMask = $104 trace_scope TraceScope(-1) when $103 is true trace_line TraceLine(11) when $13 is true copy_constant $103 = 0 copy_slot_masked [return_loop].result = Mask($103) trace_var TraceVar([return_loop].result) when $13 is true mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) trace_scope TraceScope(-1) when $102 is true load_return_mask RetMask = $101 trace_exit TraceExit(int return_loop(int five)) when $13 is true copy_slot_unmasked $101 = [return_loop].result label label 0x00000009 cmpeq_imm_int $101 = equal($101, 0x00000005) copy_constant $91 = 0 merge_condition_mask CondMask = $100 & $101 branch_if_no_lanes_active branch_if_no_lanes_active +69 (label 8 at #175) trace_enter TraceEnter(int continue_loop(int five)) when $13 is true copy_constant $92 = 0 copy_slot_unmasked $93 = $13 copy_slot_masked $92 = Mask($93) trace_scope TraceScope(+1) when $92 is true trace_line TraceLine(17) when $13 is true copy_constant sum = 0 trace_var TraceVar(sum) when $13 is true copy_constant $93 = 0 copy_slot_unmasked $94 = $13 copy_slot_masked $93 = Mask($94) trace_scope TraceScope(+1) when $93 is true trace_line TraceLine(18) when $13 is true copy_constant i₁ = 0 trace_var TraceVar(i₁) when $13 is true store_loop_mask $94 = LoopMask jump jump +33 (label 15 at #156) label label 0x00000010 copy_constant $110 = 0 copy_constant $95 = 0 copy_slot_unmasked $96 = $13 copy_slot_masked $95 = Mask($96) trace_scope TraceScope(+1) when $95 is true trace_line TraceLine(19) when $13 is true store_condition_mask $96 = CondMask copy_slot_unmasked $97 = i₁ copy_slot_unmasked $98 = five cmplt_int $97 = lessThan($97, $98) merge_condition_mask CondMask = $96 & $97 copy_constant $98 = 0 copy_slot_unmasked $99 = $13 copy_slot_masked $98 = Mask($99) trace_scope TraceScope(+1) when $98 is true trace_line TraceLine(19) when $13 is true continue_op $110 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) trace_scope TraceScope(-1) when $98 is true load_condition_mask CondMask = $96 trace_line TraceLine(20) when $13 is true copy_2_slots_unmasked $96..97 = sum, i₁ add_int $96 += $97 copy_slot_masked sum = Mask($96) trace_var TraceVar(sum) when $13 is true trace_scope TraceScope(-1) when $95 is true reenable_loop_mask LoopMask |= $110 trace_line TraceLine(18) when $13 is true copy_slot_unmasked $95 = i₁ add_imm_int $95 += 0x00000001 copy_slot_masked i₁ = Mask($95) trace_var TraceVar(i₁) when $13 is true label label 0x0000000F copy_slot_unmasked $95 = i₁ cmplt_imm_int $95 = lessThan($95, 0x0000000A) merge_loop_mask LoopMask &= $95 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 16 at #124) label label 0x0000000E load_loop_mask LoopMask = $94 trace_scope TraceScope(-1) when $93 is true trace_line TraceLine(22) when $13 is true copy_slot_unmasked $93 = sum copy_slot_masked [continue_loop].result = Mask($93) trace_var TraceVar([continue_loop].result) when $13 is true trace_scope TraceScope(-1) when $92 is true trace_exit TraceExit(int continue_loop(int five)) when $13 is true copy_slot_unmasked $92 = [continue_loop].result label label 0x0000000D cmpeq_imm_int $92 = equal($92, 0x00000023) copy_slot_masked $91 = Mask($92) label label 0x00000008 load_condition_mask CondMask = $100 copy_constant $81 = 0 merge_condition_mask CondMask = $90 & $91 branch_if_no_lanes_active branch_if_no_lanes_active +74 (label 7 at #253) trace_enter TraceEnter(int break_loop(int five)) when $13 is true copy_constant five₁ = 0x00000005 (7.006492e-45) trace_var TraceVar(five₁) when $13 is true copy_constant $82 = 0 copy_slot_unmasked $83 = $13 copy_slot_masked $82 = Mask($83) trace_scope TraceScope(+1) when $82 is true trace_line TraceLine(27) when $13 is true copy_constant sum₁ = 0 trace_var TraceVar(sum₁) when $13 is true trace_line TraceLine(28) when $13 is true copy_constant kOne = 0x00000001 (1.401298e-45) trace_var TraceVar(kOne) when $13 is true copy_constant $83 = 0 copy_slot_unmasked $84 = $13 copy_slot_masked $83 = Mask($84) trace_scope TraceScope(+1) when $83 is true trace_line TraceLine(29) when $13 is true copy_constant i₂ = 0 trace_var TraceVar(i₂) when $13 is true store_loop_mask $84 = LoopMask jump jump +33 (label 19 at #234) label label 0x00000014 copy_constant $85 = 0 copy_slot_unmasked $86 = $13 copy_slot_masked $85 = Mask($86) trace_scope TraceScope(+1) when $85 is true trace_line TraceLine(30) when $13 is true store_condition_mask $86 = CondMask copy_slot_unmasked $87 = five₁ copy_slot_unmasked $88 = i₂ cmplt_int $87 = lessThan($87, $88) merge_condition_mask CondMask = $86 & $87 copy_constant $88 = 0 copy_slot_unmasked $89 = $13 copy_slot_masked $88 = Mask($89) trace_scope TraceScope(+1) when $88 is true trace_line TraceLine(30) when $13 is true branch_if_all_lanes_active branch_if_all_lanes_active +22 (label 18 at #240) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) trace_scope TraceScope(-1) when $88 is true load_condition_mask CondMask = $86 trace_line TraceLine(31) when $13 is true copy_slot_unmasked $86 = sum₁ copy_slot_unmasked $87 = i₂ add_int $86 += $87 copy_slot_masked sum₁ = Mask($86) trace_var TraceVar(sum₁) when $13 is true trace_scope TraceScope(-1) when $85 is true trace_line TraceLine(29) when $13 is true copy_slot_unmasked $85 = i₂ add_imm_int $85 += 0x00000001 copy_slot_masked i₂ = Mask($85) trace_var TraceVar(i₂) when $13 is true label label 0x00000013 copy_slot_unmasked $85 = i₂ cmplt_imm_int $85 = lessThan($85, 0x0000000A) merge_loop_mask LoopMask &= $85 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 20 at #202) label label 0x00000012 load_loop_mask LoopMask = $84 trace_scope TraceScope(-1) when $83 is true trace_line TraceLine(33) when $13 is true copy_slot_unmasked $83 = sum₁ copy_slot_masked [break_loop].result = Mask($83) trace_var TraceVar([break_loop].result) when $13 is true trace_scope TraceScope(-1) when $82 is true trace_exit TraceExit(int break_loop(int five)) when $13 is true copy_slot_unmasked $82 = [break_loop].result label label 0x00000011 cmpeq_imm_int $82 = equal($82, 0x0000000F) copy_slot_masked $81 = Mask($82) label label 0x00000007 load_condition_mask CondMask = $90 copy_constant $68 = 0 merge_condition_mask CondMask = $80 & $81 branch_if_no_lanes_active branch_if_no_lanes_active +78 (label 6 at #335) trace_enter TraceEnter(bool loop_operator_le()) when $13 is true copy_constant $69 = 0 copy_slot_unmasked $70 = $13 copy_slot_masked $69 = Mask($70) trace_scope TraceScope(+1) when $69 is true trace_line TraceLine(38) when $13 is true trace_line TraceLine(39) when $13 is true trace_line TraceLine(40) when $13 is true trace_line TraceLine(43) when $13 is true splat_4_constants result = 0x00000008 (1.121039e-44) trace_var TraceVar(result) when $13 is true copy_constant $70 = 0 copy_slot_unmasked $71 = $13 copy_slot_masked $70 = Mask($71) trace_scope TraceScope(+1) when $70 is true branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 22 at #290) trace_line TraceLine(44) when $13 is true copy_constant i₃ = 0 trace_var TraceVar(i₃) when $13 is true label label 0x00000017 copy_constant $71 = 0 copy_slot_unmasked $72 = $13 copy_slot_masked $71 = Mask($72) trace_scope TraceScope(+1) when $71 is true trace_line TraceLine(44) when $13 is true copy_4_slots_unmasked $72..75 = result splat_4_constants $76..79 = 0x00000001 (1.401298e-45) add_4_ints $72..75 += $76..79 copy_4_slots_masked result = Mask($72..75) trace_var TraceVar(result) when $13 is true trace_scope TraceScope(-1) when $71 is true trace_line TraceLine(44) when $13 is true label label 0x00000016 trace_scope TraceScope(-1) when $70 is true copy_constant $70 = 0 copy_slot_unmasked $71 = $13 copy_slot_masked $70 = Mask($71) trace_scope TraceScope(+1) when $70 is true branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 24 at #320) trace_line TraceLine(47) when $13 is true copy_constant i₄ = 0x00000001 (1.401298e-45) trace_var TraceVar(i₄) when $13 is true label label 0x00000019 copy_constant $71 = 0 copy_slot_unmasked $72 = $13 copy_slot_masked $71 = Mask($72) trace_scope TraceScope(+1) when $71 is true trace_line TraceLine(48) when $13 is true copy_3_slots_unmasked $72..74 = result(1..3) copy_slot_unmasked $75 = i₄ copy_4_slots_masked result = Mask($72..75) trace_var TraceVar(result) when $13 is true trace_scope TraceScope(-1) when $71 is true trace_line TraceLine(47) when $13 is true copy_slot_unmasked $71 = i₄ add_imm_int $71 += 0x00000001 copy_slot_masked i₄ = Mask($71) trace_var TraceVar(i₄) when $13 is true copy_slot_unmasked $71 = i₄ cmple_imm_int $71 = lessThanEqual($71, 0x00000003) stack_rewind branch_if_no_active_lanes_eq branch -19 (label 25 at #300) if no lanes of $71 == 0 label label 0x00000018 trace_scope TraceScope(-1) when $70 is true trace_line TraceLine(50) when $13 is true copy_4_slots_unmasked $70..73 = result copy_4_immutables_unmasked $74..77 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] cmpeq_4_ints $70..73 = equal($70..73, $74..77) bitwise_and_2_ints $70..71 &= $72..73 bitwise_and_int $70 &= $71 copy_slot_masked [loop_operator_le].result = Mask($70) trace_var TraceVar([loop_operator_le].result) when $13 is true trace_scope TraceScope(-1) when $69 is true trace_exit TraceExit(bool loop_operator_le()) when $13 is true copy_slot_unmasked $69 = [loop_operator_le].result label label 0x00000015 copy_slot_masked $68 = Mask($69) label label 0x00000006 load_condition_mask CondMask = $80 copy_constant $55 = 0 merge_condition_mask CondMask = $67 & $68 branch_if_no_lanes_active branch_if_no_lanes_active +78 (label 5 at #417) trace_enter TraceEnter(bool loop_operator_lt()) when $13 is true copy_constant $56 = 0 copy_slot_unmasked $57 = $13 copy_slot_masked $56 = Mask($57) trace_scope TraceScope(+1) when $56 is true trace_line TraceLine(55) when $13 is true trace_line TraceLine(56) when $13 is true trace_line TraceLine(57) when $13 is true trace_line TraceLine(60) when $13 is true splat_4_constants result₁ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₁) when $13 is true copy_constant $57 = 0 copy_slot_unmasked $58 = $13 copy_slot_masked $57 = Mask($58) trace_scope TraceScope(+1) when $57 is true branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 27 at #372) trace_line TraceLine(61) when $13 is true copy_constant i₅ = 0 trace_var TraceVar(i₅) when $13 is true label label 0x0000001C copy_constant $58 = 0 copy_slot_unmasked $59 = $13 copy_slot_masked $58 = Mask($59) trace_scope TraceScope(+1) when $58 is true trace_line TraceLine(61) when $13 is true copy_4_slots_unmasked $59..62 = result₁ splat_4_constants $63..66 = 0x00000001 (1.401298e-45) add_4_ints $59..62 += $63..66 copy_4_slots_masked result₁ = Mask($59..62) trace_var TraceVar(result₁) when $13 is true trace_scope TraceScope(-1) when $58 is true trace_line TraceLine(61) when $13 is true label label 0x0000001B trace_scope TraceScope(-1) when $57 is true copy_constant $57 = 0 copy_slot_unmasked $58 = $13 copy_slot_masked $57 = Mask($58) trace_scope TraceScope(+1) when $57 is true branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 29 at #402) trace_line TraceLine(64) when $13 is true copy_constant i₆ = 0x00000001 (1.401298e-45) trace_var TraceVar(i₆) when $13 is true label label 0x0000001E copy_constant $58 = 0 copy_slot_unmasked $59 = $13 copy_slot_masked $58 = Mask($59) trace_scope TraceScope(+1) when $58 is true trace_line TraceLine(65) when $13 is true copy_3_slots_unmasked $59..61 = result₁(1..3) copy_slot_unmasked $62 = i₆ copy_4_slots_masked result₁ = Mask($59..62) trace_var TraceVar(result₁) when $13 is true trace_scope TraceScope(-1) when $58 is true trace_line TraceLine(64) when $13 is true copy_slot_unmasked $58 = i₆ add_imm_int $58 += 0x00000001 copy_slot_masked i₆ = Mask($58) trace_var TraceVar(i₆) when $13 is true copy_slot_unmasked $58 = i₆ cmplt_imm_int $58 = lessThan($58, 0x00000004) stack_rewind branch_if_no_active_lanes_eq branch -19 (label 30 at #382) if no lanes of $58 == 0 label label 0x0000001D trace_scope TraceScope(-1) when $57 is true trace_line TraceLine(67) when $13 is true copy_4_slots_unmasked $57..60 = result₁ copy_4_immutables_unmasked $61..64 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] cmpeq_4_ints $57..60 = equal($57..60, $61..64) bitwise_and_2_ints $57..58 &= $59..60 bitwise_and_int $57 &= $58 copy_slot_masked [loop_operator_lt].result = Mask($57) trace_var TraceVar([loop_operator_lt].result) when $13 is true trace_scope TraceScope(-1) when $56 is true trace_exit TraceExit(bool loop_operator_lt()) when $13 is true copy_slot_unmasked $56 = [loop_operator_lt].result label label 0x0000001A copy_slot_masked $55 = Mask($56) label label 0x00000005 load_condition_mask CondMask = $67 copy_constant $42 = 0 merge_condition_mask CondMask = $54 & $55 branch_if_no_lanes_active branch_if_no_lanes_active +79 (label 4 at #500) trace_enter TraceEnter(bool loop_operator_ge()) when $13 is true copy_constant $43 = 0 copy_slot_unmasked $44 = $13 copy_slot_masked $43 = Mask($44) trace_scope TraceScope(+1) when $43 is true trace_line TraceLine(72) when $13 is true trace_line TraceLine(73) when $13 is true trace_line TraceLine(74) when $13 is true trace_line TraceLine(77) when $13 is true splat_4_constants result₂ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₂) when $13 is true copy_constant $44 = 0 copy_slot_unmasked $45 = $13 copy_slot_masked $44 = Mask($45) trace_scope TraceScope(+1) when $44 is true branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 32 at #454) trace_line TraceLine(78) when $13 is true copy_constant i₇ = 0 trace_var TraceVar(i₇) when $13 is true label label 0x00000021 copy_constant $45 = 0 copy_slot_unmasked $46 = $13 copy_slot_masked $45 = Mask($46) trace_scope TraceScope(+1) when $45 is true trace_line TraceLine(78) when $13 is true copy_4_slots_unmasked $46..49 = result₂ splat_4_constants $50..53 = 0x00000001 (1.401298e-45) add_4_ints $46..49 += $50..53 copy_4_slots_masked result₂ = Mask($46..49) trace_var TraceVar(result₂) when $13 is true trace_scope TraceScope(-1) when $45 is true trace_line TraceLine(78) when $13 is true label label 0x00000020 trace_scope TraceScope(-1) when $44 is true copy_constant $44 = 0 copy_slot_unmasked $45 = $13 copy_slot_masked $44 = Mask($45) trace_scope TraceScope(+1) when $44 is true branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 34 at #485) trace_line TraceLine(81) when $13 is true copy_constant i₈ = 0x00000003 (4.203895e-45) trace_var TraceVar(i₈) when $13 is true label label 0x00000023 copy_constant $45 = 0 copy_slot_unmasked $46 = $13 copy_slot_masked $45 = Mask($46) trace_scope TraceScope(+1) when $45 is true trace_line TraceLine(82) when $13 is true copy_3_slots_unmasked $46..48 = result₂(1..3) copy_slot_unmasked $49 = i₈ copy_4_slots_masked result₂ = Mask($46..49) trace_var TraceVar(result₂) when $13 is true trace_scope TraceScope(-1) when $45 is true trace_line TraceLine(81) when $13 is true copy_slot_unmasked $45 = i₈ add_imm_int $45 += 0xFFFFFFFF copy_slot_masked i₈ = Mask($45) trace_var TraceVar(i₈) when $13 is true copy_constant $45 = 0x00000001 (1.401298e-45) copy_slot_unmasked $46 = i₈ cmple_int $45 = lessThanEqual($45, $46) stack_rewind branch_if_no_active_lanes_eq branch -20 (label 35 at #464) if no lanes of $45 == 0 label label 0x00000022 trace_scope TraceScope(-1) when $44 is true trace_line TraceLine(84) when $13 is true copy_4_slots_unmasked $44..47 = result₂ copy_4_immutables_unmasked $48..51 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] cmpeq_4_ints $44..47 = equal($44..47, $48..51) bitwise_and_2_ints $44..45 &= $46..47 bitwise_and_int $44 &= $45 copy_slot_masked [loop_operator_ge].result = Mask($44) trace_var TraceVar([loop_operator_ge].result) when $13 is true trace_scope TraceScope(-1) when $43 is true trace_exit TraceExit(bool loop_operator_ge()) when $13 is true copy_slot_unmasked $43 = [loop_operator_ge].result label label 0x0000001F copy_slot_masked $42 = Mask($43) label label 0x00000004 load_condition_mask CondMask = $54 copy_constant $29 = 0 merge_condition_mask CondMask = $41 & $42 branch_if_no_lanes_active branch_if_no_lanes_active +79 (label 3 at #583) trace_enter TraceEnter(bool loop_operator_gt()) when $13 is true copy_constant $30 = 0 copy_slot_unmasked $31 = $13 copy_slot_masked $30 = Mask($31) trace_scope TraceScope(+1) when $30 is true trace_line TraceLine(89) when $13 is true trace_line TraceLine(90) when $13 is true trace_line TraceLine(91) when $13 is true trace_line TraceLine(94) when $13 is true splat_4_constants result₃ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₃) when $13 is true copy_constant $31 = 0 copy_slot_unmasked $32 = $13 copy_slot_masked $31 = Mask($32) trace_scope TraceScope(+1) when $31 is true branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 37 at #537) trace_line TraceLine(95) when $13 is true copy_constant i₉ = 0x00000001 (1.401298e-45) trace_var TraceVar(i₉) when $13 is true label label 0x00000026 copy_constant $32 = 0 copy_slot_unmasked $33 = $13 copy_slot_masked $32 = Mask($33) trace_scope TraceScope(+1) when $32 is true trace_line TraceLine(95) when $13 is true copy_4_slots_unmasked $33..36 = result₃ splat_4_constants $37..40 = 0x00000001 (1.401298e-45) add_4_ints $33..36 += $37..40 copy_4_slots_masked result₃ = Mask($33..36) trace_var TraceVar(result₃) when $13 is true trace_scope TraceScope(-1) when $32 is true trace_line TraceLine(95) when $13 is true label label 0x00000025 trace_scope TraceScope(-1) when $31 is true copy_constant $31 = 0 copy_slot_unmasked $32 = $13 copy_slot_masked $31 = Mask($32) trace_scope TraceScope(+1) when $31 is true branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 39 at #568) trace_line TraceLine(97) when $13 is true copy_constant i₁₀ = 0x00000003 (4.203895e-45) trace_var TraceVar(i₁₀) when $13 is true label label 0x00000028 copy_constant $32 = 0 copy_slot_unmasked $33 = $13 copy_slot_masked $32 = Mask($33) trace_scope TraceScope(+1) when $32 is true trace_line TraceLine(98) when $13 is true copy_3_slots_unmasked $33..35 = result₃(1..3) copy_slot_unmasked $36 = i₁₀ copy_4_slots_masked result₃ = Mask($33..36) trace_var TraceVar(result₃) when $13 is true trace_scope TraceScope(-1) when $32 is true trace_line TraceLine(97) when $13 is true copy_slot_unmasked $32 = i₁₀ add_imm_int $32 += 0xFFFFFFFF copy_slot_masked i₁₀ = Mask($32) trace_var TraceVar(i₁₀) when $13 is true copy_constant $32 = 0 copy_slot_unmasked $33 = i₁₀ cmplt_int $32 = lessThan($32, $33) stack_rewind branch_if_no_active_lanes_eq branch -20 (label 40 at #547) if no lanes of $32 == 0 label label 0x00000027 trace_scope TraceScope(-1) when $31 is true trace_line TraceLine(100) when $13 is true copy_4_slots_unmasked $31..34 = result₃ copy_4_immutables_unmasked $35..38 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] cmpeq_4_ints $31..34 = equal($31..34, $35..38) bitwise_and_2_ints $31..32 &= $33..34 bitwise_and_int $31 &= $32 copy_slot_masked [loop_operator_gt].result = Mask($31) trace_var TraceVar([loop_operator_gt].result) when $13 is true trace_scope TraceScope(-1) when $30 is true trace_exit TraceExit(bool loop_operator_gt()) when $13 is true copy_slot_unmasked $30 = [loop_operator_gt].result label label 0x00000024 copy_slot_masked $29 = Mask($30) label label 0x00000003 load_condition_mask CondMask = $41 copy_constant $18 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 2 at #631) trace_enter TraceEnter(bool loop_operator_eq()) when $13 is true copy_constant $19 = 0 copy_slot_unmasked $20 = $13 copy_slot_masked $19 = Mask($20) trace_scope TraceScope(+1) when $19 is true trace_line TraceLine(119) when $13 is true trace_line TraceLine(122) when $13 is true splat_4_constants result₄ = 0x00000009 (1.261169e-44) trace_var TraceVar(result₄) when $13 is true copy_constant $20 = 0 copy_slot_unmasked $21 = $13 copy_slot_masked $20 = Mask($21) trace_scope TraceScope(+1) when $20 is true branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 42 at #616) trace_line TraceLine(123) when $13 is true copy_constant i₁₁ = 0x00000001 (1.401298e-45) trace_var TraceVar(i₁₁) when $13 is true label label 0x0000002B copy_constant $21 = 0 copy_slot_unmasked $22 = $13 copy_slot_masked $21 = Mask($22) trace_scope TraceScope(+1) when $21 is true trace_line TraceLine(124) when $13 is true copy_4_slots_unmasked $22..25 = result₄(1..3), i₁₁ copy_4_slots_masked result₄ = Mask($22..25) trace_var TraceVar(result₄) when $13 is true trace_scope TraceScope(-1) when $21 is true trace_line TraceLine(123) when $13 is true label label 0x0000002A trace_scope TraceScope(-1) when $20 is true trace_line TraceLine(126) when $13 is true copy_4_slots_unmasked $20..23 = result₄ copy_4_immutables_unmasked $24..27 = i8..11 [0x00000009 (1.261169e-44), 0x00000009 (1.261169e-44), 0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45)] cmpeq_4_ints $20..23 = equal($20..23, $24..27) bitwise_and_2_ints $20..21 &= $22..23 bitwise_and_int $20 &= $21 copy_slot_masked [loop_operator_eq].result = Mask($20) trace_var TraceVar([loop_operator_eq].result) when $13 is true trace_scope TraceScope(-1) when $19 is true trace_exit TraceExit(bool loop_operator_eq()) when $13 is true copy_slot_unmasked $19 = [loop_operator_eq].result label label 0x00000029 copy_slot_masked $18 = Mask($19) label label 0x00000002 load_condition_mask CondMask = $28 copy_constant $1 = 0 merge_condition_mask CondMask = $17 & $18 branch_if_no_lanes_active branch_if_no_lanes_active +76 (label 1 at #711) trace_enter TraceEnter(bool loop_operator_ne()) when $13 is true copy_constant $2 = 0 copy_slot_unmasked $3 = $13 copy_slot_masked $2 = Mask($3) trace_scope TraceScope(+1) when $2 is true trace_line TraceLine(105) when $13 is true trace_line TraceLine(108) when $13 is true splat_4_constants result₅ = 0x00000008 (1.121039e-44) trace_var TraceVar(result₅) when $13 is true copy_constant $3 = 0 copy_slot_unmasked $4 = $13 copy_slot_masked $3 = Mask($4) trace_scope TraceScope(+1) when $3 is true branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 45 at #666) trace_line TraceLine(109) when $13 is true copy_constant i₁₂ = 0x00000001 (1.401298e-45) trace_var TraceVar(i₁₂) when $13 is true label label 0x0000002E copy_constant $4 = 0 copy_slot_unmasked $5 = $13 copy_slot_masked $4 = Mask($5) trace_scope TraceScope(+1) when $4 is true trace_line TraceLine(109) when $13 is true copy_4_slots_unmasked $5..8 = result₅ splat_4_constants $9..12 = 0x00000001 (1.401298e-45) add_4_ints $5..8 += $9..12 copy_4_slots_masked result₅ = Mask($5..8) trace_var TraceVar(result₅) when $13 is true trace_scope TraceScope(-1) when $4 is true trace_line TraceLine(109) when $13 is true label label 0x0000002D trace_scope TraceScope(-1) when $3 is true copy_constant $3 = 0 copy_slot_unmasked $4 = $13 copy_slot_masked $3 = Mask($4) trace_scope TraceScope(+1) when $3 is true branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 47 at #696) trace_line TraceLine(111) when $13 is true copy_constant i₁₃ = 0x00000001 (1.401298e-45) trace_var TraceVar(i₁₃) when $13 is true label label 0x00000030 copy_constant $4 = 0 copy_slot_unmasked $5 = $13 copy_slot_masked $4 = Mask($5) trace_scope TraceScope(+1) when $4 is true trace_line TraceLine(112) when $13 is true copy_3_slots_unmasked $5..7 = result₅(1..3) copy_slot_unmasked $8 = i₁₃ copy_4_slots_masked result₅ = Mask($5..8) trace_var TraceVar(result₅) when $13 is true trace_scope TraceScope(-1) when $4 is true trace_line TraceLine(111) when $13 is true copy_slot_unmasked $4 = i₁₃ add_imm_int $4 += 0x00000001 copy_slot_masked i₁₃ = Mask($4) trace_var TraceVar(i₁₃) when $13 is true copy_slot_unmasked $4 = i₁₃ cmpne_imm_int $4 = notEqual($4, 0x00000004) stack_rewind branch_if_no_active_lanes_eq branch -19 (label 48 at #676) if no lanes of $4 == 0 label label 0x0000002F trace_scope TraceScope(-1) when $3 is true trace_line TraceLine(114) when $13 is true copy_4_slots_unmasked $3..6 = result₅ copy_4_immutables_unmasked $7..10 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] cmpeq_4_ints $3..6 = equal($3..6, $7..10) bitwise_and_2_ints $3..4 &= $5..6 bitwise_and_int $3 &= $4 copy_slot_masked [loop_operator_ne].result = Mask($3) trace_var TraceVar([loop_operator_ne].result) when $13 is true trace_scope TraceScope(-1) when $2 is true trace_exit TraceExit(bool loop_operator_ne()) when $13 is true copy_slot_unmasked $2 = [loop_operator_ne].result label label 0x0000002C copy_slot_masked $1 = Mask($2) label label 0x00000001 load_condition_mask CondMask = $17 swizzle_4 $1..4 = ($1..4).xxxx copy_4_uniforms $5..8 = colorRed copy_4_uniforms $9..12 = colorGreen mix_4_ints $1..4 = mix($5..8, $9..12, $1..4) copy_4_slots_unmasked [main].result = $1..4 trace_var TraceVar([main].result) when $13 is true trace_scope TraceScope(-1) when $0 is true trace_exit TraceExit(half4 main(float2 pos)) when $13 is true load_src src.rgba = [main].result