blob: ec4fd55794066e5ef9d63fe0e18ad6b6c9eacb03 [file] [log] [blame]
614 instructions
[immutable slots]
i0 = 0x41100000 (9.0)
i1 = 0x3F800000 (1.0)
i2 = 0x40000000 (2.0)
i3 = 0x40400000 (3.0)
i4 = 0x41100000 (9.0)
i5 = 0x40400000 (3.0)
i6 = 0x40000000 (2.0)
i7 = 0x3F800000 (1.0)
i8 = 0x41100000 (9.0)
i9 = 0x41100000 (9.0)
i10 = 0x41100000 (9.0)
i11 = 0x3F800000 (1.0)
store_device_xy01 $13..16 = DeviceCoords.xy01
splat_2_constants $15..16 = 0x3F000000 (0.5)
cmpeq_2_floats $13..14 = equal($13..14, $15..16)
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 = 0x41200000 (10.0)
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(116) 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)
mul_imm_float $1 *= 0x40A00000 (5.0)
copy_slot_unmasked five = $1
trace_var TraceVar(five) when $13 is true
trace_line TraceLine(117) when $13 is true
store_condition_mask $17 = CondMask
store_condition_mask $28 = CondMask
store_condition_mask $39 = CondMask
store_condition_mask $50 = CondMask
store_condition_mask $61 = CondMask
store_condition_mask $72 = CondMask
store_condition_mask $79 = CondMask
store_condition_mask $89 = CondMask
store_condition_mask $99 = CondMask
branch_if_no_lanes_active branch_if_no_lanes_active +64 (label 10 at #104)
trace_enter TraceEnter(float return_loop(float five)) when $13 is true
copy_slot_unmasked five = five
trace_var TraceVar(five₁) when $13 is true
store_return_mask $100 = RetMask
copy_constant $101 = 0
copy_slot_unmasked $102 = $13
copy_slot_masked $101 = Mask($102)
trace_scope TraceScope(+1) when $101 is true
copy_constant $102 = 0
copy_slot_unmasked $103 = $13
copy_slot_masked $102 = Mask($103)
trace_scope TraceScope(+1) when $102 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 $103 = LoopMask
jump jump +29 (label 12 at #86)
label label 0x0000000D
copy_constant $104 = 0
copy_slot_unmasked $105 = $13
copy_slot_masked $104 = Mask($105)
trace_scope TraceScope(+1) when $104 is true
trace_line TraceLine(9) when $13 is true
store_condition_mask $105 = CondMask
copy_slot_unmasked $106 = i
copy_slot_unmasked $107 = five
cmpeq_float $106 = equal($106, $107)
merge_condition_mask CondMask = $105 & $106
copy_constant $107 = 0
copy_slot_unmasked $108 = $13
copy_slot_masked $107 = Mask($108)
trace_scope TraceScope(+1) when $107 is true
trace_line TraceLine(9) when $13 is true
copy_slot_unmasked $108 = i
copy_slot_masked [return_loop].result = Mask($108)
trace_var TraceVar([return_loop].result) when $13 is true
mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
trace_scope TraceScope(-1) when $107 is true
load_condition_mask CondMask = $105
trace_scope TraceScope(-1) when $104 is true
trace_line TraceLine(8) when $13 is true
copy_slot_unmasked $104 = i
add_imm_float $104 += 0x3F800000 (1.0)
copy_slot_masked i = Mask($104)
trace_var TraceVar(i) when $13 is true
label label 0x0000000C
copy_slot_unmasked $104 = i
cmplt_imm_float $104 = lessThan($104, 0x41200000 (10.0))
merge_loop_mask LoopMask &= $104
stack_rewind
branch_if_any_lanes_active branch_if_any_lanes_active -33 (label 13 at #58)
label label 0x0000000B
load_loop_mask LoopMask = $103
trace_scope TraceScope(-1) when $102 is true
trace_line TraceLine(11) when $13 is true
copy_constant $102 = 0
copy_slot_masked [return_loop].result = Mask($102)
trace_var TraceVar([return_loop].result) when $13 is true
mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask)
trace_scope TraceScope(-1) when $101 is true
load_return_mask RetMask = $100
trace_exit TraceExit(float return_loop(float five)) when $13 is true
copy_slot_unmasked $100 = [return_loop].result
label label 0x0000000A
cmpeq_imm_float $100 = equal($100, 0x40A00000 (5.0))
copy_constant $90 = 0
merge_condition_mask CondMask = $99 & $100
branch_if_no_lanes_active branch_if_no_lanes_active +71 (label 9 at #179)
trace_enter TraceEnter(float continue_loop(float five)) when $13 is true
copy_slot_unmasked five = five
trace_var TraceVar(five₂) when $13 is true
copy_constant $91 = 0
copy_slot_unmasked $92 = $13
copy_slot_masked $91 = Mask($92)
trace_scope TraceScope(+1) when $91 is true
trace_line TraceLine(17) when $13 is true
copy_constant sum = 0
trace_var TraceVar(sum) 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(18) when $13 is true
copy_constant i = 0
trace_var TraceVar(i₁) when $13 is true
store_loop_mask $93 = LoopMask
jump jump +33 (label 16 at #160)
label label 0x00000011
copy_constant $109 = 0
copy_constant $94 = 0
copy_slot_unmasked $95 = $13
copy_slot_masked $94 = Mask($95)
trace_scope TraceScope(+1) when $94 is true
trace_line TraceLine(19) when $13 is true
store_condition_mask $95 = CondMask
copy_slot_unmasked $96 = i
copy_slot_unmasked $97 = five
cmplt_float $96 = lessThan($96, $97)
merge_condition_mask CondMask = $95 & $96
copy_constant $97 = 0
copy_slot_unmasked $98 = $13
copy_slot_masked $97 = Mask($98)
trace_scope TraceScope(+1) when $97 is true
trace_line TraceLine(19) when $13 is true
continue_op $109 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask)
trace_scope TraceScope(-1) when $97 is true
load_condition_mask CondMask = $95
trace_line TraceLine(20) when $13 is true
copy_2_slots_unmasked $95..96 = sum, i
add_float $95 += $96
copy_slot_masked sum = Mask($95)
trace_var TraceVar(sum) when $13 is true
trace_scope TraceScope(-1) when $94 is true
reenable_loop_mask LoopMask |= $109
trace_line TraceLine(18) when $13 is true
copy_slot_unmasked $94 = i
add_imm_float $94 += 0x3F800000 (1.0)
copy_slot_masked i = Mask($94)
trace_var TraceVar(i₁) when $13 is true
label label 0x00000010
copy_slot_unmasked $94 = i
cmplt_imm_float $94 = lessThan($94, 0x41200000 (10.0))
merge_loop_mask LoopMask &= $94
stack_rewind
branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 17 at #128)
label label 0x0000000F
load_loop_mask LoopMask = $93
trace_scope TraceScope(-1) when $92 is true
trace_line TraceLine(22) when $13 is true
copy_slot_unmasked $92 = sum
copy_slot_masked [continue_loop].result = Mask($92)
trace_var TraceVar([continue_loop].result) when $13 is true
trace_scope TraceScope(-1) when $91 is true
trace_exit TraceExit(float continue_loop(float five)) when $13 is true
copy_slot_unmasked $91 = [continue_loop].result
label label 0x0000000E
cmpeq_imm_float $91 = equal($91, 0x420C0000 (35.0))
copy_slot_masked $90 = Mask($91)
label label 0x00000009
load_condition_mask CondMask = $99
copy_constant $80 = 0
merge_condition_mask CondMask = $89 & $90
branch_if_no_lanes_active branch_if_no_lanes_active +74 (label 8 at #257)
trace_enter TraceEnter(float break_loop(float five)) when $13 is true
copy_slot_unmasked five = five
trace_var TraceVar(five₃) when $13 is true
copy_constant $81 = 0
copy_slot_unmasked $82 = $13
copy_slot_masked $81 = Mask($82)
trace_scope TraceScope(+1) when $81 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 = 0x3F800000 (1.0)
trace_var TraceVar(kOne) 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(29) when $13 is true
copy_constant i = 0
trace_var TraceVar(i₂) when $13 is true
store_loop_mask $83 = LoopMask
jump jump +33 (label 20 at #238)
label label 0x00000015
copy_constant $84 = 0
copy_slot_unmasked $85 = $13
copy_slot_masked $84 = Mask($85)
trace_scope TraceScope(+1) when $84 is true
trace_line TraceLine(30) when $13 is true
store_condition_mask $85 = CondMask
copy_slot_unmasked $86 = five
copy_slot_unmasked $87 = i
cmplt_float $86 = lessThan($86, $87)
merge_condition_mask CondMask = $85 & $86
copy_constant $87 = 0
copy_slot_unmasked $88 = $13
copy_slot_masked $87 = Mask($88)
trace_scope TraceScope(+1) when $87 is true
trace_line TraceLine(30) when $13 is true
branch_if_all_lanes_active branch_if_all_lanes_active +22 (label 19 at #244)
mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask)
trace_scope TraceScope(-1) when $87 is true
load_condition_mask CondMask = $85
trace_line TraceLine(31) when $13 is true
copy_slot_unmasked $85 = sum
copy_slot_unmasked $86 = i
add_float $85 += $86
copy_slot_masked sum = Mask($85)
trace_var TraceVar(sum₁) when $13 is true
trace_scope TraceScope(-1) when $84 is true
trace_line TraceLine(29) when $13 is true
copy_slot_unmasked $84 = i
add_imm_float $84 += 0x3F800000 (1.0)
copy_slot_masked i = Mask($84)
trace_var TraceVar(i₂) when $13 is true
label label 0x00000014
copy_slot_unmasked $84 = i
cmplt_imm_float $84 = lessThan($84, 0x41200000 (10.0))
merge_loop_mask LoopMask &= $84
stack_rewind
branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 21 at #206)
label label 0x00000013
load_loop_mask LoopMask = $83
trace_scope TraceScope(-1) when $82 is true
trace_line TraceLine(33) when $13 is true
copy_slot_unmasked $82 = sum
copy_slot_masked [break_loop].result = Mask($82)
trace_var TraceVar([break_loop].result) when $13 is true
trace_scope TraceScope(-1) when $81 is true
trace_exit TraceExit(float break_loop(float five)) when $13 is true
copy_slot_unmasked $81 = [break_loop].result
label label 0x00000012
cmpeq_imm_float $81 = equal($81, 0x41700000 (15.0))
copy_slot_masked $80 = Mask($81)
label label 0x00000008
load_condition_mask CondMask = $89
copy_constant $73 = 0
merge_condition_mask CondMask = $79 & $80
branch_if_no_lanes_active branch_if_no_lanes_active +51 (label 7 at #312)
trace_enter TraceEnter(float float_loop()) when $13 is true
copy_constant $74 = 0
copy_slot_unmasked $75 = $13
copy_slot_masked $74 = Mask($75)
trace_scope TraceScope(+1) when $74 is true
trace_line TraceLine(38) when $13 is true
copy_constant sum = 0
trace_var TraceVar(sum₂) when $13 is true
copy_constant $75 = 0
copy_slot_unmasked $76 = $13
copy_slot_masked $75 = Mask($76)
trace_scope TraceScope(+1) when $75 is true
branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 23 at #298)
trace_line TraceLine(39) when $13 is true
copy_constant i = 0x3DFBE76D (0.123)
trace_var TraceVar(i₃) when $13 is true
label label 0x00000018
copy_constant $76 = 0
copy_slot_unmasked $77 = $13
copy_slot_masked $76 = Mask($77)
trace_scope TraceScope(+1) when $76 is true
trace_line TraceLine(40) when $13 is true
copy_2_slots_unmasked $77..78 = sum₂, i
add_float $77 += $78
copy_slot_masked sum = Mask($77)
trace_var TraceVar(sum₂) when $13 is true
trace_scope TraceScope(-1) when $76 is true
trace_line TraceLine(39) when $13 is true
copy_slot_unmasked $76 = i
add_imm_float $76 += 0x3DE353F8 (0.111)
copy_slot_masked i = Mask($76)
trace_var TraceVar(i₃) when $13 is true
copy_slot_unmasked $76 = i
cmplt_imm_float $76 = lessThan($76, 0x3F19999A (0.6))
stack_rewind
branch_if_no_active_lanes_eq branch -19 (label 24 at #278) if no lanes of $76 == 0
label label 0x00000017
trace_scope TraceScope(-1) when $75 is true
trace_line TraceLine(42) when $13 is true
copy_slot_unmasked $75 = sum
add_imm_float $75 += 0xBFDCCCCD (-1.725)
copy_slot_masked [float_loop].result = Mask($75)
trace_var TraceVar([float_loop].result) when $13 is true
trace_scope TraceScope(-1) when $74 is true
trace_exit TraceExit(float float_loop()) when $13 is true
copy_slot_unmasked $74 = [float_loop].result
label label 0x00000016
bitwise_and_imm_int $74 &= 0x7FFFFFFF
cmplt_imm_float $74 = lessThan($74, 0x3CCCCCCD (0.025))
copy_slot_masked $73 = Mask($74)
label label 0x00000007
load_condition_mask CondMask = $79
copy_constant $62 = 0
merge_condition_mask CondMask = $72 & $73
branch_if_no_lanes_active branch_if_no_lanes_active +53 (label 6 at #369)
trace_enter TraceEnter(bool loop_operator_le()) when $13 is true
copy_constant $63 = 0
copy_slot_unmasked $64 = $13
copy_slot_masked $63 = Mask($64)
trace_scope TraceScope(+1) when $63 is true
trace_line TraceLine(47) when $13 is true
trace_line TraceLine(48) when $13 is true
trace_line TraceLine(50) when $13 is true
splat_4_constants result = 0x41100000 (9.0)
trace_var TraceVar(result) when $13 is true
copy_constant $64 = 0
copy_slot_unmasked $65 = $13
copy_slot_masked $64 = Mask($65)
trace_scope TraceScope(+1) when $64 is true
branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 26 at #354)
trace_line TraceLine(51) when $13 is true
copy_constant i = 0x3F800000 (1.0)
trace_var TraceVar(i₄) when $13 is true
label label 0x0000001B
copy_constant $65 = 0
copy_slot_unmasked $66 = $13
copy_slot_masked $65 = Mask($66)
trace_scope TraceScope(+1) when $65 is true
trace_line TraceLine(52) when $13 is true
copy_4_slots_unmasked $66..69 = result(1..3), i
copy_4_slots_masked result = Mask($66..69)
trace_var TraceVar(result) when $13 is true
trace_scope TraceScope(-1) when $65 is true
trace_line TraceLine(51) when $13 is true
copy_slot_unmasked $65 = i
add_imm_float $65 += 0x3F800000 (1.0)
copy_slot_masked i = Mask($65)
trace_var TraceVar(i₄) when $13 is true
copy_slot_unmasked $65 = i
cmple_imm_float $65 = lessThanEqual($65, 0x40400000 (3.0))
stack_rewind
branch_if_no_active_lanes_eq branch -18 (label 27 at #335) if no lanes of $65 == 0
label label 0x0000001A
trace_scope TraceScope(-1) when $64 is true
trace_line TraceLine(54) when $13 is true
copy_4_slots_unmasked $64..67 = result
copy_4_immutables_unmasked $68..71 = i0..3 [0x41100000 (9.0), 0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0)]
cmpeq_4_floats $64..67 = equal($64..67, $68..71)
bitwise_and_2_ints $64..65 &= $66..67
bitwise_and_int $64 &= $65
copy_slot_masked [loop_operator_le].result = Mask($64)
trace_var TraceVar([loop_operator_le].result) when $13 is true
trace_scope TraceScope(-1) when $63 is true
trace_exit TraceExit(bool loop_operator_le()) when $13 is true
copy_slot_unmasked $63 = [loop_operator_le].result
label label 0x00000019
copy_slot_masked $62 = Mask($63)
label label 0x00000006
load_condition_mask CondMask = $72
copy_constant $51 = 0
merge_condition_mask CondMask = $61 & $62
branch_if_no_lanes_active branch_if_no_lanes_active +53 (label 5 at #426)
trace_enter TraceEnter(bool loop_operator_lt()) when $13 is true
copy_constant $52 = 0
copy_slot_unmasked $53 = $13
copy_slot_masked $52 = Mask($53)
trace_scope TraceScope(+1) when $52 is true
trace_line TraceLine(59) when $13 is true
trace_line TraceLine(60) when $13 is true
trace_line TraceLine(62) when $13 is true
splat_4_constants result = 0x41100000 (9.0)
trace_var TraceVar(result₁) when $13 is true
copy_constant $53 = 0
copy_slot_unmasked $54 = $13
copy_slot_masked $53 = Mask($54)
trace_scope TraceScope(+1) when $53 is true
branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 29 at #411)
trace_line TraceLine(63) when $13 is true
copy_constant i = 0x3F800000 (1.0)
trace_var TraceVar(i₅) when $13 is true
label label 0x0000001E
copy_constant $54 = 0
copy_slot_unmasked $55 = $13
copy_slot_masked $54 = Mask($55)
trace_scope TraceScope(+1) when $54 is true
trace_line TraceLine(64) when $13 is true
copy_4_slots_unmasked $55..58 = result₁(1..3), i
copy_4_slots_masked result = Mask($55..58)
trace_var TraceVar(result₁) when $13 is true
trace_scope TraceScope(-1) when $54 is true
trace_line TraceLine(63) when $13 is true
copy_slot_unmasked $54 = i
add_imm_float $54 += 0x3F800000 (1.0)
copy_slot_masked i = Mask($54)
trace_var TraceVar(i₅) when $13 is true
copy_slot_unmasked $54 = i
cmplt_imm_float $54 = lessThan($54, 0x40800000 (4.0))
stack_rewind
branch_if_no_active_lanes_eq branch -18 (label 30 at #392) if no lanes of $54 == 0
label label 0x0000001D
trace_scope TraceScope(-1) when $53 is true
trace_line TraceLine(66) when $13 is true
copy_4_slots_unmasked $53..56 = result
copy_4_immutables_unmasked $57..60 = i0..3 [0x41100000 (9.0), 0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0)]
cmpeq_4_floats $53..56 = equal($53..56, $57..60)
bitwise_and_2_ints $53..54 &= $55..56
bitwise_and_int $53 &= $54
copy_slot_masked [loop_operator_lt].result = Mask($53)
trace_var TraceVar([loop_operator_lt].result) when $13 is true
trace_scope TraceScope(-1) when $52 is true
trace_exit TraceExit(bool loop_operator_lt()) when $13 is true
copy_slot_unmasked $52 = [loop_operator_lt].result
label label 0x0000001C
copy_slot_masked $51 = Mask($52)
label label 0x00000005
load_condition_mask CondMask = $61
copy_constant $40 = 0
merge_condition_mask CondMask = $50 & $51
branch_if_no_lanes_active branch_if_no_lanes_active +54 (label 4 at #484)
trace_enter TraceEnter(bool loop_operator_ge()) when $13 is true
copy_constant $41 = 0
copy_slot_unmasked $42 = $13
copy_slot_masked $41 = Mask($42)
trace_scope TraceScope(+1) when $41 is true
trace_line TraceLine(71) when $13 is true
trace_line TraceLine(72) when $13 is true
trace_line TraceLine(74) when $13 is true
splat_4_constants result = 0x41100000 (9.0)
trace_var TraceVar(result₂) when $13 is true
copy_constant $42 = 0
copy_slot_unmasked $43 = $13
copy_slot_masked $42 = Mask($43)
trace_scope TraceScope(+1) when $42 is true
branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 32 at #469)
trace_line TraceLine(75) when $13 is true
copy_constant i = 0x40400000 (3.0)
trace_var TraceVar(i₆) when $13 is true
label label 0x00000021
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(76) when $13 is true
copy_4_slots_unmasked $44..47 = result₂(1..3), i
copy_4_slots_masked result = Mask($44..47)
trace_var TraceVar(result₂) when $13 is true
trace_scope TraceScope(-1) when $43 is true
trace_line TraceLine(75) when $13 is true
copy_slot_unmasked $43 = i
add_imm_float $43 += 0xBF800000 (-1.0)
copy_slot_masked i = Mask($43)
trace_var TraceVar(i₆) when $13 is true
copy_constant $43 = 0x3F800000 (1.0)
copy_slot_unmasked $44 = i
cmple_float $43 = lessThanEqual($43, $44)
stack_rewind
branch_if_no_active_lanes_eq branch -19 (label 33 at #449) if no lanes of $43 == 0
label label 0x00000020
trace_scope TraceScope(-1) when $42 is true
trace_line TraceLine(78) when $13 is true
copy_4_slots_unmasked $42..45 = result
copy_4_immutables_unmasked $46..49 = i4..7 [0x41100000 (9.0), 0x40400000 (3.0), 0x40000000 (2.0), 0x3F800000 (1.0)]
cmpeq_4_floats $42..45 = equal($42..45, $46..49)
bitwise_and_2_ints $42..43 &= $44..45
bitwise_and_int $42 &= $43
copy_slot_masked [loop_operator_ge].result = Mask($42)
trace_var TraceVar([loop_operator_ge].result) when $13 is true
trace_scope TraceScope(-1) when $41 is true
trace_exit TraceExit(bool loop_operator_ge()) when $13 is true
copy_slot_unmasked $41 = [loop_operator_ge].result
label label 0x0000001F
copy_slot_masked $40 = Mask($41)
label label 0x00000004
load_condition_mask CondMask = $50
copy_constant $29 = 0
merge_condition_mask CondMask = $39 & $40
branch_if_no_lanes_active branch_if_no_lanes_active +54 (label 3 at #542)
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(83) when $13 is true
trace_line TraceLine(84) when $13 is true
trace_line TraceLine(86) when $13 is true
splat_4_constants result = 0x41100000 (9.0)
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 +24 (label 35 at #527)
trace_line TraceLine(87) when $13 is true
copy_constant i = 0x40400000 (3.0)
trace_var TraceVar(i₇) when $13 is true
label label 0x00000024
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(88) when $13 is true
copy_4_slots_unmasked $33..36 = result₃(1..3), 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(87) when $13 is true
copy_slot_unmasked $32 = i
add_imm_float $32 += 0xBF800000 (-1.0)
copy_slot_masked i = Mask($32)
trace_var TraceVar(i₇) when $13 is true
copy_constant $32 = 0
copy_slot_unmasked $33 = i
cmplt_float $32 = lessThan($32, $33)
stack_rewind
branch_if_no_active_lanes_eq branch -19 (label 36 at #507) if no lanes of $32 == 0
label label 0x00000023
trace_scope TraceScope(-1) when $31 is true
trace_line TraceLine(90) when $13 is true
copy_4_slots_unmasked $31..34 = result
copy_4_immutables_unmasked $35..38 = i4..7 [0x41100000 (9.0), 0x40400000 (3.0), 0x40000000 (2.0), 0x3F800000 (1.0)]
cmpeq_4_floats $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 0x00000022
copy_slot_masked $29 = Mask($30)
label label 0x00000003
load_condition_mask CondMask = $39
copy_constant $18 = 0
merge_condition_mask CondMask = $28 & $29
branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 2 at #590)
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(106) when $13 is true
trace_line TraceLine(108) when $13 is true
splat_4_constants result = 0x41100000 (9.0)
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 38 at #575)
trace_line TraceLine(109) when $13 is true
copy_constant i = 0x3F800000 (1.0)
trace_var TraceVar(i₈) when $13 is true
label label 0x00000027
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(110) 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(109) when $13 is true
label label 0x00000026
trace_scope TraceScope(-1) when $20 is true
trace_line TraceLine(112) when $13 is true
copy_4_slots_unmasked $20..23 = result
copy_4_immutables_unmasked $24..27 = i8..11 [0x41100000 (9.0), 0x41100000 (9.0), 0x41100000 (9.0), 0x3F800000 (1.0)]
cmpeq_4_floats $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 0x00000025
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 +52 (label 1 at #646)
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(95) when $13 is true
trace_line TraceLine(97) when $13 is true
splat_4_constants result = 0x41100000 (9.0)
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 +23 (label 41 at #631)
trace_line TraceLine(98) when $13 is true
copy_constant i = 0x3F800000 (1.0)
trace_var TraceVar(i₉) when $13 is true
label label 0x0000002A
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(99) when $13 is true
copy_4_slots_unmasked $5..8 = result₅(1..3), 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(98) when $13 is true
copy_slot_unmasked $4 = i
add_imm_float $4 += 0x3F800000 (1.0)
copy_slot_masked i = Mask($4)
trace_var TraceVar(i₉) when $13 is true
copy_slot_unmasked $4 = i
cmplt_imm_float $4 = lessThan($4, 0x40800000 (4.0))
stack_rewind
branch_if_no_active_lanes_eq branch -18 (label 42 at #612) if no lanes of $4 == 0
label label 0x00000029
trace_scope TraceScope(-1) when $3 is true
trace_line TraceLine(101) when $13 is true
copy_4_slots_unmasked $3..6 = result
copy_4_immutables_unmasked $7..10 = i0..3 [0x41100000 (9.0), 0x3F800000 (1.0), 0x40000000 (2.0), 0x40400000 (3.0)]
cmpeq_4_floats $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 0x00000028
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