1673 instructions 2 3[immutable slots] 4i0 = 0x00000009 (1.261169e-44) 5i1 = 0x00000001 (1.401298e-45) 6i2 = 0x00000002 (2.802597e-45) 7i3 = 0x00000003 (4.203895e-45) 8i4 = 0x00000009 (1.261169e-44) 9i5 = 0x00000003 (4.203895e-45) 10i6 = 0x00000002 (2.802597e-45) 11i7 = 0x00000001 (1.401298e-45) 12i8 = 0x00000009 (1.261169e-44) 13i9 = 0x00000009 (1.261169e-44) 14i10 = 0x00000009 (1.261169e-44) 15i11 = 0x00000001 (1.401298e-45) 16 17store_device_xy01 $13..16 = DeviceCoords.xy01 18cmpeq_imm_float $13 = equal($13, 0x3F000000 (0.5)) 19cmpeq_imm_float $14 = equal($14, 0x3F000000 (0.5)) 20bitwise_and_int $13 &= $14 21store_src_rg pos = src.rg 22init_lane_masks CondMask = LoopMask = RetMask = true 23copy_4_uniforms colorRed = colorRed 24trace_var TraceVar(colorRed) when $13 is true 25copy_4_uniforms colorGreen = colorGreen 26trace_var TraceVar(colorGreen) when $13 is true 27copy_constant kZero = 0 28trace_var TraceVar(kZero) when $13 is true 29copy_constant kTen = 0x0000000A (1.401298e-44) 30trace_var TraceVar(kTen) when $13 is true 31trace_enter TraceEnter(half4 main(float2 pos)) when $13 is true 32trace_var TraceVar(pos) when $13 is true 33copy_constant $0 = 0 34copy_slot_unmasked $1 = $13 35copy_slot_masked $0 = Mask($1) 36trace_scope TraceScope(+1) when $0 is true 37trace_line TraceLine(130) when $13 is true 38copy_slot_unmasked $1 = pos(0) 39copy_uniform $2 = colorGreen(1) 40max_float $1 = max($1, $2) 41copy_uniform $2 = colorGreen(3) 42min_float $1 = min($1, $2) 43cast_to_int_from_float $1 = FloatToInt($1) 44mul_imm_int $1 *= 0x00000005 45copy_slot_unmasked five = $1 46trace_var TraceVar(five) when $13 is true 47trace_line TraceLine(134) when $13 is true 48store_condition_mask $17 = CondMask 49store_condition_mask $28 = CondMask 50store_condition_mask $41 = CondMask 51store_condition_mask $54 = CondMask 52store_condition_mask $67 = CondMask 53store_condition_mask $80 = CondMask 54store_condition_mask $90 = CondMask 55store_condition_mask $100 = CondMask 56branch_if_no_lanes_active branch_if_no_lanes_active +62 (label 9 at #102) 57trace_enter TraceEnter(int return_loop(int five)) when $13 is true 58store_return_mask $101 = RetMask 59copy_constant $102 = 0 60copy_slot_unmasked $103 = $13 61copy_slot_masked $102 = Mask($103) 62trace_scope TraceScope(+1) when $102 is true 63copy_constant $103 = 0 64copy_slot_unmasked $104 = $13 65copy_slot_masked $103 = Mask($104) 66trace_scope TraceScope(+1) when $103 is true 67trace_line TraceLine(8) when $13 is true 68copy_constant i = 0 69trace_var TraceVar(i) when $13 is true 70store_loop_mask $104 = LoopMask 71jump jump +29 (label 11 at #84) 72label label 0x0000000C 73copy_constant $105 = 0 74copy_slot_unmasked $106 = $13 75copy_slot_masked $105 = Mask($106) 76trace_scope TraceScope(+1) when $105 is true 77trace_line TraceLine(9) when $13 is true 78store_condition_mask $106 = CondMask 79copy_slot_unmasked $107 = i 80copy_slot_unmasked $108 = five 81cmpeq_int $107 = equal($107, $108) 82merge_condition_mask CondMask = $106 & $107 83copy_constant $108 = 0 84copy_slot_unmasked $109 = $13 85copy_slot_masked $108 = Mask($109) 86trace_scope TraceScope(+1) when $108 is true 87trace_line TraceLine(9) when $13 is true 88copy_slot_unmasked $109 = i 89copy_slot_masked [return_loop].result = Mask($109) 90trace_var TraceVar([return_loop].result) when $13 is true 91mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 92trace_scope TraceScope(-1) when $108 is true 93load_condition_mask CondMask = $106 94trace_scope TraceScope(-1) when $105 is true 95trace_line TraceLine(8) when $13 is true 96copy_slot_unmasked $105 = i 97add_imm_int $105 += 0x00000001 98copy_slot_masked i = Mask($105) 99trace_var TraceVar(i) when $13 is true 100label label 0x0000000B 101copy_slot_unmasked $105 = i 102cmplt_imm_int $105 = lessThan($105, 0x0000000A) 103merge_loop_mask LoopMask &= $105 104stack_rewind 105branch_if_any_lanes_active branch_if_any_lanes_active -33 (label 12 at #56) 106label label 0x0000000A 107load_loop_mask LoopMask = $104 108trace_scope TraceScope(-1) when $103 is true 109trace_line TraceLine(11) when $13 is true 110copy_constant $103 = 0 111copy_slot_masked [return_loop].result = Mask($103) 112trace_var TraceVar([return_loop].result) when $13 is true 113mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 114trace_scope TraceScope(-1) when $102 is true 115load_return_mask RetMask = $101 116trace_exit TraceExit(int return_loop(int five)) when $13 is true 117copy_slot_unmasked $101 = [return_loop].result 118label label 0x00000009 119cmpeq_imm_int $101 = equal($101, 0x00000005) 120copy_constant $91 = 0 121merge_condition_mask CondMask = $100 & $101 122branch_if_no_lanes_active branch_if_no_lanes_active +69 (label 8 at #175) 123trace_enter TraceEnter(int continue_loop(int five)) when $13 is true 124copy_constant $92 = 0 125copy_slot_unmasked $93 = $13 126copy_slot_masked $92 = Mask($93) 127trace_scope TraceScope(+1) when $92 is true 128trace_line TraceLine(17) when $13 is true 129copy_constant sum = 0 130trace_var TraceVar(sum) when $13 is true 131copy_constant $93 = 0 132copy_slot_unmasked $94 = $13 133copy_slot_masked $93 = Mask($94) 134trace_scope TraceScope(+1) when $93 is true 135trace_line TraceLine(18) when $13 is true 136copy_constant i₁ = 0 137trace_var TraceVar(i₁) when $13 is true 138store_loop_mask $94 = LoopMask 139jump jump +33 (label 15 at #156) 140label label 0x00000010 141copy_constant $110 = 0 142copy_constant $95 = 0 143copy_slot_unmasked $96 = $13 144copy_slot_masked $95 = Mask($96) 145trace_scope TraceScope(+1) when $95 is true 146trace_line TraceLine(19) when $13 is true 147store_condition_mask $96 = CondMask 148copy_slot_unmasked $97 = i₁ 149copy_slot_unmasked $98 = five 150cmplt_int $97 = lessThan($97, $98) 151merge_condition_mask CondMask = $96 & $97 152copy_constant $98 = 0 153copy_slot_unmasked $99 = $13 154copy_slot_masked $98 = Mask($99) 155trace_scope TraceScope(+1) when $98 is true 156trace_line TraceLine(19) when $13 is true 157continue_op $110 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) 158trace_scope TraceScope(-1) when $98 is true 159load_condition_mask CondMask = $96 160trace_line TraceLine(20) when $13 is true 161copy_2_slots_unmasked $96..97 = sum, i₁ 162add_int $96 += $97 163copy_slot_masked sum = Mask($96) 164trace_var TraceVar(sum) when $13 is true 165trace_scope TraceScope(-1) when $95 is true 166reenable_loop_mask LoopMask |= $110 167trace_line TraceLine(18) when $13 is true 168copy_slot_unmasked $95 = i₁ 169add_imm_int $95 += 0x00000001 170copy_slot_masked i₁ = Mask($95) 171trace_var TraceVar(i₁) when $13 is true 172label label 0x0000000F 173copy_slot_unmasked $95 = i₁ 174cmplt_imm_int $95 = lessThan($95, 0x0000000A) 175merge_loop_mask LoopMask &= $95 176stack_rewind 177branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 16 at #124) 178label label 0x0000000E 179load_loop_mask LoopMask = $94 180trace_scope TraceScope(-1) when $93 is true 181trace_line TraceLine(22) when $13 is true 182copy_slot_unmasked $93 = sum 183copy_slot_masked [continue_loop].result = Mask($93) 184trace_var TraceVar([continue_loop].result) when $13 is true 185trace_scope TraceScope(-1) when $92 is true 186trace_exit TraceExit(int continue_loop(int five)) when $13 is true 187copy_slot_unmasked $92 = [continue_loop].result 188label label 0x0000000D 189cmpeq_imm_int $92 = equal($92, 0x00000023) 190copy_slot_masked $91 = Mask($92) 191label label 0x00000008 192load_condition_mask CondMask = $100 193copy_constant $81 = 0 194merge_condition_mask CondMask = $90 & $91 195branch_if_no_lanes_active branch_if_no_lanes_active +74 (label 7 at #253) 196trace_enter TraceEnter(int break_loop(int five)) when $13 is true 197copy_constant five₁ = 0x00000005 (7.006492e-45) 198trace_var TraceVar(five₁) when $13 is true 199copy_constant $82 = 0 200copy_slot_unmasked $83 = $13 201copy_slot_masked $82 = Mask($83) 202trace_scope TraceScope(+1) when $82 is true 203trace_line TraceLine(27) when $13 is true 204copy_constant sum₁ = 0 205trace_var TraceVar(sum₁) when $13 is true 206trace_line TraceLine(28) when $13 is true 207copy_constant kOne = 0x00000001 (1.401298e-45) 208trace_var TraceVar(kOne) when $13 is true 209copy_constant $83 = 0 210copy_slot_unmasked $84 = $13 211copy_slot_masked $83 = Mask($84) 212trace_scope TraceScope(+1) when $83 is true 213trace_line TraceLine(29) when $13 is true 214copy_constant i₂ = 0 215trace_var TraceVar(i₂) when $13 is true 216store_loop_mask $84 = LoopMask 217jump jump +33 (label 19 at #234) 218label label 0x00000014 219copy_constant $85 = 0 220copy_slot_unmasked $86 = $13 221copy_slot_masked $85 = Mask($86) 222trace_scope TraceScope(+1) when $85 is true 223trace_line TraceLine(30) when $13 is true 224store_condition_mask $86 = CondMask 225copy_slot_unmasked $87 = five₁ 226copy_slot_unmasked $88 = i₂ 227cmplt_int $87 = lessThan($87, $88) 228merge_condition_mask CondMask = $86 & $87 229copy_constant $88 = 0 230copy_slot_unmasked $89 = $13 231copy_slot_masked $88 = Mask($89) 232trace_scope TraceScope(+1) when $88 is true 233trace_line TraceLine(30) when $13 is true 234branch_if_all_lanes_active branch_if_all_lanes_active +22 (label 18 at #240) 235mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 236trace_scope TraceScope(-1) when $88 is true 237load_condition_mask CondMask = $86 238trace_line TraceLine(31) when $13 is true 239copy_slot_unmasked $86 = sum₁ 240copy_slot_unmasked $87 = i₂ 241add_int $86 += $87 242copy_slot_masked sum₁ = Mask($86) 243trace_var TraceVar(sum₁) when $13 is true 244trace_scope TraceScope(-1) when $85 is true 245trace_line TraceLine(29) when $13 is true 246copy_slot_unmasked $85 = i₂ 247add_imm_int $85 += 0x00000001 248copy_slot_masked i₂ = Mask($85) 249trace_var TraceVar(i₂) when $13 is true 250label label 0x00000013 251copy_slot_unmasked $85 = i₂ 252cmplt_imm_int $85 = lessThan($85, 0x0000000A) 253merge_loop_mask LoopMask &= $85 254stack_rewind 255branch_if_any_lanes_active branch_if_any_lanes_active -37 (label 20 at #202) 256label label 0x00000012 257load_loop_mask LoopMask = $84 258trace_scope TraceScope(-1) when $83 is true 259trace_line TraceLine(33) when $13 is true 260copy_slot_unmasked $83 = sum₁ 261copy_slot_masked [break_loop].result = Mask($83) 262trace_var TraceVar([break_loop].result) when $13 is true 263trace_scope TraceScope(-1) when $82 is true 264trace_exit TraceExit(int break_loop(int five)) when $13 is true 265copy_slot_unmasked $82 = [break_loop].result 266label label 0x00000011 267cmpeq_imm_int $82 = equal($82, 0x0000000F) 268copy_slot_masked $81 = Mask($82) 269label label 0x00000007 270load_condition_mask CondMask = $90 271copy_constant $68 = 0 272merge_condition_mask CondMask = $80 & $81 273branch_if_no_lanes_active branch_if_no_lanes_active +78 (label 6 at #335) 274trace_enter TraceEnter(bool loop_operator_le()) when $13 is true 275copy_constant $69 = 0 276copy_slot_unmasked $70 = $13 277copy_slot_masked $69 = Mask($70) 278trace_scope TraceScope(+1) when $69 is true 279trace_line TraceLine(38) when $13 is true 280trace_line TraceLine(39) when $13 is true 281trace_line TraceLine(40) when $13 is true 282trace_line TraceLine(43) when $13 is true 283splat_4_constants result = 0x00000008 (1.121039e-44) 284trace_var TraceVar(result) when $13 is true 285copy_constant $70 = 0 286copy_slot_unmasked $71 = $13 287copy_slot_masked $70 = Mask($71) 288trace_scope TraceScope(+1) when $70 is true 289branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 22 at #290) 290trace_line TraceLine(44) when $13 is true 291copy_constant i₃ = 0 292trace_var TraceVar(i₃) when $13 is true 293label label 0x00000017 294copy_constant $71 = 0 295copy_slot_unmasked $72 = $13 296copy_slot_masked $71 = Mask($72) 297trace_scope TraceScope(+1) when $71 is true 298trace_line TraceLine(44) when $13 is true 299copy_4_slots_unmasked $72..75 = result 300splat_4_constants $76..79 = 0x00000001 (1.401298e-45) 301add_4_ints $72..75 += $76..79 302copy_4_slots_masked result = Mask($72..75) 303trace_var TraceVar(result) when $13 is true 304trace_scope TraceScope(-1) when $71 is true 305trace_line TraceLine(44) when $13 is true 306label label 0x00000016 307trace_scope TraceScope(-1) when $70 is true 308copy_constant $70 = 0 309copy_slot_unmasked $71 = $13 310copy_slot_masked $70 = Mask($71) 311trace_scope TraceScope(+1) when $70 is true 312branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 24 at #320) 313trace_line TraceLine(47) when $13 is true 314copy_constant i₄ = 0x00000001 (1.401298e-45) 315trace_var TraceVar(i₄) when $13 is true 316label label 0x00000019 317copy_constant $71 = 0 318copy_slot_unmasked $72 = $13 319copy_slot_masked $71 = Mask($72) 320trace_scope TraceScope(+1) when $71 is true 321trace_line TraceLine(48) when $13 is true 322copy_3_slots_unmasked $72..74 = result(1..3) 323copy_slot_unmasked $75 = i₄ 324copy_4_slots_masked result = Mask($72..75) 325trace_var TraceVar(result) when $13 is true 326trace_scope TraceScope(-1) when $71 is true 327trace_line TraceLine(47) when $13 is true 328copy_slot_unmasked $71 = i₄ 329add_imm_int $71 += 0x00000001 330copy_slot_masked i₄ = Mask($71) 331trace_var TraceVar(i₄) when $13 is true 332copy_slot_unmasked $71 = i₄ 333cmple_imm_int $71 = lessThanEqual($71, 0x00000003) 334stack_rewind 335branch_if_no_active_lanes_eq branch -19 (label 25 at #300) if no lanes of $71 == 0 336label label 0x00000018 337trace_scope TraceScope(-1) when $70 is true 338trace_line TraceLine(50) when $13 is true 339copy_4_slots_unmasked $70..73 = result 340copy_4_immutables_unmasked $74..77 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] 341cmpeq_4_ints $70..73 = equal($70..73, $74..77) 342bitwise_and_2_ints $70..71 &= $72..73 343bitwise_and_int $70 &= $71 344copy_slot_masked [loop_operator_le].result = Mask($70) 345trace_var TraceVar([loop_operator_le].result) when $13 is true 346trace_scope TraceScope(-1) when $69 is true 347trace_exit TraceExit(bool loop_operator_le()) when $13 is true 348copy_slot_unmasked $69 = [loop_operator_le].result 349label label 0x00000015 350copy_slot_masked $68 = Mask($69) 351label label 0x00000006 352load_condition_mask CondMask = $80 353copy_constant $55 = 0 354merge_condition_mask CondMask = $67 & $68 355branch_if_no_lanes_active branch_if_no_lanes_active +78 (label 5 at #417) 356trace_enter TraceEnter(bool loop_operator_lt()) when $13 is true 357copy_constant $56 = 0 358copy_slot_unmasked $57 = $13 359copy_slot_masked $56 = Mask($57) 360trace_scope TraceScope(+1) when $56 is true 361trace_line TraceLine(55) when $13 is true 362trace_line TraceLine(56) when $13 is true 363trace_line TraceLine(57) when $13 is true 364trace_line TraceLine(60) when $13 is true 365splat_4_constants result₁ = 0x00000008 (1.121039e-44) 366trace_var TraceVar(result₁) when $13 is true 367copy_constant $57 = 0 368copy_slot_unmasked $58 = $13 369copy_slot_masked $57 = Mask($58) 370trace_scope TraceScope(+1) when $57 is true 371branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 27 at #372) 372trace_line TraceLine(61) when $13 is true 373copy_constant i₅ = 0 374trace_var TraceVar(i₅) when $13 is true 375label label 0x0000001C 376copy_constant $58 = 0 377copy_slot_unmasked $59 = $13 378copy_slot_masked $58 = Mask($59) 379trace_scope TraceScope(+1) when $58 is true 380trace_line TraceLine(61) when $13 is true 381copy_4_slots_unmasked $59..62 = result₁ 382splat_4_constants $63..66 = 0x00000001 (1.401298e-45) 383add_4_ints $59..62 += $63..66 384copy_4_slots_masked result₁ = Mask($59..62) 385trace_var TraceVar(result₁) when $13 is true 386trace_scope TraceScope(-1) when $58 is true 387trace_line TraceLine(61) when $13 is true 388label label 0x0000001B 389trace_scope TraceScope(-1) when $57 is true 390copy_constant $57 = 0 391copy_slot_unmasked $58 = $13 392copy_slot_masked $57 = Mask($58) 393trace_scope TraceScope(+1) when $57 is true 394branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 29 at #402) 395trace_line TraceLine(64) when $13 is true 396copy_constant i₆ = 0x00000001 (1.401298e-45) 397trace_var TraceVar(i₆) when $13 is true 398label label 0x0000001E 399copy_constant $58 = 0 400copy_slot_unmasked $59 = $13 401copy_slot_masked $58 = Mask($59) 402trace_scope TraceScope(+1) when $58 is true 403trace_line TraceLine(65) when $13 is true 404copy_3_slots_unmasked $59..61 = result₁(1..3) 405copy_slot_unmasked $62 = i₆ 406copy_4_slots_masked result₁ = Mask($59..62) 407trace_var TraceVar(result₁) when $13 is true 408trace_scope TraceScope(-1) when $58 is true 409trace_line TraceLine(64) when $13 is true 410copy_slot_unmasked $58 = i₆ 411add_imm_int $58 += 0x00000001 412copy_slot_masked i₆ = Mask($58) 413trace_var TraceVar(i₆) when $13 is true 414copy_slot_unmasked $58 = i₆ 415cmplt_imm_int $58 = lessThan($58, 0x00000004) 416stack_rewind 417branch_if_no_active_lanes_eq branch -19 (label 30 at #382) if no lanes of $58 == 0 418label label 0x0000001D 419trace_scope TraceScope(-1) when $57 is true 420trace_line TraceLine(67) when $13 is true 421copy_4_slots_unmasked $57..60 = result₁ 422copy_4_immutables_unmasked $61..64 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] 423cmpeq_4_ints $57..60 = equal($57..60, $61..64) 424bitwise_and_2_ints $57..58 &= $59..60 425bitwise_and_int $57 &= $58 426copy_slot_masked [loop_operator_lt].result = Mask($57) 427trace_var TraceVar([loop_operator_lt].result) when $13 is true 428trace_scope TraceScope(-1) when $56 is true 429trace_exit TraceExit(bool loop_operator_lt()) when $13 is true 430copy_slot_unmasked $56 = [loop_operator_lt].result 431label label 0x0000001A 432copy_slot_masked $55 = Mask($56) 433label label 0x00000005 434load_condition_mask CondMask = $67 435copy_constant $42 = 0 436merge_condition_mask CondMask = $54 & $55 437branch_if_no_lanes_active branch_if_no_lanes_active +79 (label 4 at #500) 438trace_enter TraceEnter(bool loop_operator_ge()) when $13 is true 439copy_constant $43 = 0 440copy_slot_unmasked $44 = $13 441copy_slot_masked $43 = Mask($44) 442trace_scope TraceScope(+1) when $43 is true 443trace_line TraceLine(72) when $13 is true 444trace_line TraceLine(73) when $13 is true 445trace_line TraceLine(74) when $13 is true 446trace_line TraceLine(77) when $13 is true 447splat_4_constants result₂ = 0x00000008 (1.121039e-44) 448trace_var TraceVar(result₂) when $13 is true 449copy_constant $44 = 0 450copy_slot_unmasked $45 = $13 451copy_slot_masked $44 = Mask($45) 452trace_scope TraceScope(+1) when $44 is true 453branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 32 at #454) 454trace_line TraceLine(78) when $13 is true 455copy_constant i₇ = 0 456trace_var TraceVar(i₇) when $13 is true 457label label 0x00000021 458copy_constant $45 = 0 459copy_slot_unmasked $46 = $13 460copy_slot_masked $45 = Mask($46) 461trace_scope TraceScope(+1) when $45 is true 462trace_line TraceLine(78) when $13 is true 463copy_4_slots_unmasked $46..49 = result₂ 464splat_4_constants $50..53 = 0x00000001 (1.401298e-45) 465add_4_ints $46..49 += $50..53 466copy_4_slots_masked result₂ = Mask($46..49) 467trace_var TraceVar(result₂) when $13 is true 468trace_scope TraceScope(-1) when $45 is true 469trace_line TraceLine(78) when $13 is true 470label label 0x00000020 471trace_scope TraceScope(-1) when $44 is true 472copy_constant $44 = 0 473copy_slot_unmasked $45 = $13 474copy_slot_masked $44 = Mask($45) 475trace_scope TraceScope(+1) when $44 is true 476branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 34 at #485) 477trace_line TraceLine(81) when $13 is true 478copy_constant i₈ = 0x00000003 (4.203895e-45) 479trace_var TraceVar(i₈) when $13 is true 480label label 0x00000023 481copy_constant $45 = 0 482copy_slot_unmasked $46 = $13 483copy_slot_masked $45 = Mask($46) 484trace_scope TraceScope(+1) when $45 is true 485trace_line TraceLine(82) when $13 is true 486copy_3_slots_unmasked $46..48 = result₂(1..3) 487copy_slot_unmasked $49 = i₈ 488copy_4_slots_masked result₂ = Mask($46..49) 489trace_var TraceVar(result₂) when $13 is true 490trace_scope TraceScope(-1) when $45 is true 491trace_line TraceLine(81) when $13 is true 492copy_slot_unmasked $45 = i₈ 493add_imm_int $45 += 0xFFFFFFFF 494copy_slot_masked i₈ = Mask($45) 495trace_var TraceVar(i₈) when $13 is true 496copy_constant $45 = 0x00000001 (1.401298e-45) 497copy_slot_unmasked $46 = i₈ 498cmple_int $45 = lessThanEqual($45, $46) 499stack_rewind 500branch_if_no_active_lanes_eq branch -20 (label 35 at #464) if no lanes of $45 == 0 501label label 0x00000022 502trace_scope TraceScope(-1) when $44 is true 503trace_line TraceLine(84) when $13 is true 504copy_4_slots_unmasked $44..47 = result₂ 505copy_4_immutables_unmasked $48..51 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] 506cmpeq_4_ints $44..47 = equal($44..47, $48..51) 507bitwise_and_2_ints $44..45 &= $46..47 508bitwise_and_int $44 &= $45 509copy_slot_masked [loop_operator_ge].result = Mask($44) 510trace_var TraceVar([loop_operator_ge].result) when $13 is true 511trace_scope TraceScope(-1) when $43 is true 512trace_exit TraceExit(bool loop_operator_ge()) when $13 is true 513copy_slot_unmasked $43 = [loop_operator_ge].result 514label label 0x0000001F 515copy_slot_masked $42 = Mask($43) 516label label 0x00000004 517load_condition_mask CondMask = $54 518copy_constant $29 = 0 519merge_condition_mask CondMask = $41 & $42 520branch_if_no_lanes_active branch_if_no_lanes_active +79 (label 3 at #583) 521trace_enter TraceEnter(bool loop_operator_gt()) when $13 is true 522copy_constant $30 = 0 523copy_slot_unmasked $31 = $13 524copy_slot_masked $30 = Mask($31) 525trace_scope TraceScope(+1) when $30 is true 526trace_line TraceLine(89) when $13 is true 527trace_line TraceLine(90) when $13 is true 528trace_line TraceLine(91) when $13 is true 529trace_line TraceLine(94) when $13 is true 530splat_4_constants result₃ = 0x00000008 (1.121039e-44) 531trace_var TraceVar(result₃) when $13 is true 532copy_constant $31 = 0 533copy_slot_unmasked $32 = $13 534copy_slot_masked $31 = Mask($32) 535trace_scope TraceScope(+1) when $31 is true 536branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 37 at #537) 537trace_line TraceLine(95) when $13 is true 538copy_constant i₉ = 0x00000001 (1.401298e-45) 539trace_var TraceVar(i₉) when $13 is true 540label label 0x00000026 541copy_constant $32 = 0 542copy_slot_unmasked $33 = $13 543copy_slot_masked $32 = Mask($33) 544trace_scope TraceScope(+1) when $32 is true 545trace_line TraceLine(95) when $13 is true 546copy_4_slots_unmasked $33..36 = result₃ 547splat_4_constants $37..40 = 0x00000001 (1.401298e-45) 548add_4_ints $33..36 += $37..40 549copy_4_slots_masked result₃ = Mask($33..36) 550trace_var TraceVar(result₃) when $13 is true 551trace_scope TraceScope(-1) when $32 is true 552trace_line TraceLine(95) when $13 is true 553label label 0x00000025 554trace_scope TraceScope(-1) when $31 is true 555copy_constant $31 = 0 556copy_slot_unmasked $32 = $13 557copy_slot_masked $31 = Mask($32) 558trace_scope TraceScope(+1) when $31 is true 559branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 39 at #568) 560trace_line TraceLine(97) when $13 is true 561copy_constant i₁₀ = 0x00000003 (4.203895e-45) 562trace_var TraceVar(i₁₀) when $13 is true 563label label 0x00000028 564copy_constant $32 = 0 565copy_slot_unmasked $33 = $13 566copy_slot_masked $32 = Mask($33) 567trace_scope TraceScope(+1) when $32 is true 568trace_line TraceLine(98) when $13 is true 569copy_3_slots_unmasked $33..35 = result₃(1..3) 570copy_slot_unmasked $36 = i₁₀ 571copy_4_slots_masked result₃ = Mask($33..36) 572trace_var TraceVar(result₃) when $13 is true 573trace_scope TraceScope(-1) when $32 is true 574trace_line TraceLine(97) when $13 is true 575copy_slot_unmasked $32 = i₁₀ 576add_imm_int $32 += 0xFFFFFFFF 577copy_slot_masked i₁₀ = Mask($32) 578trace_var TraceVar(i₁₀) when $13 is true 579copy_constant $32 = 0 580copy_slot_unmasked $33 = i₁₀ 581cmplt_int $32 = lessThan($32, $33) 582stack_rewind 583branch_if_no_active_lanes_eq branch -20 (label 40 at #547) if no lanes of $32 == 0 584label label 0x00000027 585trace_scope TraceScope(-1) when $31 is true 586trace_line TraceLine(100) when $13 is true 587copy_4_slots_unmasked $31..34 = result₃ 588copy_4_immutables_unmasked $35..38 = i4..7 [0x00000009 (1.261169e-44), 0x00000003 (4.203895e-45), 0x00000002 (2.802597e-45), 0x00000001 (1.401298e-45)] 589cmpeq_4_ints $31..34 = equal($31..34, $35..38) 590bitwise_and_2_ints $31..32 &= $33..34 591bitwise_and_int $31 &= $32 592copy_slot_masked [loop_operator_gt].result = Mask($31) 593trace_var TraceVar([loop_operator_gt].result) when $13 is true 594trace_scope TraceScope(-1) when $30 is true 595trace_exit TraceExit(bool loop_operator_gt()) when $13 is true 596copy_slot_unmasked $30 = [loop_operator_gt].result 597label label 0x00000024 598copy_slot_masked $29 = Mask($30) 599label label 0x00000003 600load_condition_mask CondMask = $41 601copy_constant $18 = 0 602merge_condition_mask CondMask = $28 & $29 603branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 2 at #631) 604trace_enter TraceEnter(bool loop_operator_eq()) when $13 is true 605copy_constant $19 = 0 606copy_slot_unmasked $20 = $13 607copy_slot_masked $19 = Mask($20) 608trace_scope TraceScope(+1) when $19 is true 609trace_line TraceLine(119) when $13 is true 610trace_line TraceLine(122) when $13 is true 611splat_4_constants result₄ = 0x00000009 (1.261169e-44) 612trace_var TraceVar(result₄) when $13 is true 613copy_constant $20 = 0 614copy_slot_unmasked $21 = $13 615copy_slot_masked $20 = Mask($21) 616trace_scope TraceScope(+1) when $20 is true 617branch_if_no_lanes_active branch_if_no_lanes_active +15 (label 42 at #616) 618trace_line TraceLine(123) when $13 is true 619copy_constant i₁₁ = 0x00000001 (1.401298e-45) 620trace_var TraceVar(i₁₁) when $13 is true 621label label 0x0000002B 622copy_constant $21 = 0 623copy_slot_unmasked $22 = $13 624copy_slot_masked $21 = Mask($22) 625trace_scope TraceScope(+1) when $21 is true 626trace_line TraceLine(124) when $13 is true 627copy_4_slots_unmasked $22..25 = result₄(1..3), i₁₁ 628copy_4_slots_masked result₄ = Mask($22..25) 629trace_var TraceVar(result₄) when $13 is true 630trace_scope TraceScope(-1) when $21 is true 631trace_line TraceLine(123) when $13 is true 632label label 0x0000002A 633trace_scope TraceScope(-1) when $20 is true 634trace_line TraceLine(126) when $13 is true 635copy_4_slots_unmasked $20..23 = result₄ 636copy_4_immutables_unmasked $24..27 = i8..11 [0x00000009 (1.261169e-44), 0x00000009 (1.261169e-44), 0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45)] 637cmpeq_4_ints $20..23 = equal($20..23, $24..27) 638bitwise_and_2_ints $20..21 &= $22..23 639bitwise_and_int $20 &= $21 640copy_slot_masked [loop_operator_eq].result = Mask($20) 641trace_var TraceVar([loop_operator_eq].result) when $13 is true 642trace_scope TraceScope(-1) when $19 is true 643trace_exit TraceExit(bool loop_operator_eq()) when $13 is true 644copy_slot_unmasked $19 = [loop_operator_eq].result 645label label 0x00000029 646copy_slot_masked $18 = Mask($19) 647label label 0x00000002 648load_condition_mask CondMask = $28 649copy_constant $1 = 0 650merge_condition_mask CondMask = $17 & $18 651branch_if_no_lanes_active branch_if_no_lanes_active +76 (label 1 at #711) 652trace_enter TraceEnter(bool loop_operator_ne()) when $13 is true 653copy_constant $2 = 0 654copy_slot_unmasked $3 = $13 655copy_slot_masked $2 = Mask($3) 656trace_scope TraceScope(+1) when $2 is true 657trace_line TraceLine(105) when $13 is true 658trace_line TraceLine(108) when $13 is true 659splat_4_constants result₅ = 0x00000008 (1.121039e-44) 660trace_var TraceVar(result₅) when $13 is true 661copy_constant $3 = 0 662copy_slot_unmasked $4 = $13 663copy_slot_masked $3 = Mask($4) 664trace_scope TraceScope(+1) when $3 is true 665branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 45 at #666) 666trace_line TraceLine(109) when $13 is true 667copy_constant i₁₂ = 0x00000001 (1.401298e-45) 668trace_var TraceVar(i₁₂) when $13 is true 669label label 0x0000002E 670copy_constant $4 = 0 671copy_slot_unmasked $5 = $13 672copy_slot_masked $4 = Mask($5) 673trace_scope TraceScope(+1) when $4 is true 674trace_line TraceLine(109) when $13 is true 675copy_4_slots_unmasked $5..8 = result₅ 676splat_4_constants $9..12 = 0x00000001 (1.401298e-45) 677add_4_ints $5..8 += $9..12 678copy_4_slots_masked result₅ = Mask($5..8) 679trace_var TraceVar(result₅) when $13 is true 680trace_scope TraceScope(-1) when $4 is true 681trace_line TraceLine(109) when $13 is true 682label label 0x0000002D 683trace_scope TraceScope(-1) when $3 is true 684copy_constant $3 = 0 685copy_slot_unmasked $4 = $13 686copy_slot_masked $3 = Mask($4) 687trace_scope TraceScope(+1) when $3 is true 688branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 47 at #696) 689trace_line TraceLine(111) when $13 is true 690copy_constant i₁₃ = 0x00000001 (1.401298e-45) 691trace_var TraceVar(i₁₃) when $13 is true 692label label 0x00000030 693copy_constant $4 = 0 694copy_slot_unmasked $5 = $13 695copy_slot_masked $4 = Mask($5) 696trace_scope TraceScope(+1) when $4 is true 697trace_line TraceLine(112) when $13 is true 698copy_3_slots_unmasked $5..7 = result₅(1..3) 699copy_slot_unmasked $8 = i₁₃ 700copy_4_slots_masked result₅ = Mask($5..8) 701trace_var TraceVar(result₅) when $13 is true 702trace_scope TraceScope(-1) when $4 is true 703trace_line TraceLine(111) when $13 is true 704copy_slot_unmasked $4 = i₁₃ 705add_imm_int $4 += 0x00000001 706copy_slot_masked i₁₃ = Mask($4) 707trace_var TraceVar(i₁₃) when $13 is true 708copy_slot_unmasked $4 = i₁₃ 709cmpne_imm_int $4 = notEqual($4, 0x00000004) 710stack_rewind 711branch_if_no_active_lanes_eq branch -19 (label 48 at #676) if no lanes of $4 == 0 712label label 0x0000002F 713trace_scope TraceScope(-1) when $3 is true 714trace_line TraceLine(114) when $13 is true 715copy_4_slots_unmasked $3..6 = result₅ 716copy_4_immutables_unmasked $7..10 = i0..3 [0x00000009 (1.261169e-44), 0x00000001 (1.401298e-45), 0x00000002 (2.802597e-45), 0x00000003 (4.203895e-45)] 717cmpeq_4_ints $3..6 = equal($3..6, $7..10) 718bitwise_and_2_ints $3..4 &= $5..6 719bitwise_and_int $3 &= $4 720copy_slot_masked [loop_operator_ne].result = Mask($3) 721trace_var TraceVar([loop_operator_ne].result) when $13 is true 722trace_scope TraceScope(-1) when $2 is true 723trace_exit TraceExit(bool loop_operator_ne()) when $13 is true 724copy_slot_unmasked $2 = [loop_operator_ne].result 725label label 0x0000002C 726copy_slot_masked $1 = Mask($2) 727label label 0x00000001 728load_condition_mask CondMask = $17 729swizzle_4 $1..4 = ($1..4).xxxx 730copy_4_uniforms $5..8 = colorRed 731copy_4_uniforms $9..12 = colorGreen 732mix_4_ints $1..4 = mix($5..8, $9..12, $1..4) 733copy_4_slots_unmasked [main].result = $1..4 734trace_var TraceVar([main].result) when $13 is true 735trace_scope TraceScope(-1) when $0 is true 736trace_exit TraceExit(half4 main(float2 pos)) when $13 is true 737load_src src.rgba = [main].result 738