1416 instructions 2 3store_src_rg coords = src.rg 4init_lane_masks CondMask = LoopMask = RetMask = true 5copy_uniform $0 = colorGreen(1) 6cast_to_int_from_float $0 = FloatToInt($0) 7copy_slot_unmasked x = $0 8store_condition_mask $12 = CondMask 9store_condition_mask $20 = CondMask 10store_condition_mask $26 = CondMask 11store_condition_mask $31 = CondMask 12store_condition_mask $37 = CondMask 13store_condition_mask $44 = CondMask 14store_condition_mask $51 = CondMask 15store_condition_mask $58 = CondMask 16store_condition_mask $65 = CondMask 17store_condition_mask $72 = CondMask 18store_condition_mask $79 = CondMask 19store_condition_mask $86 = CondMask 20store_condition_mask $92 = CondMask 21branch_if_no_lanes_active branch_if_no_lanes_active +29 (label 14 at #48) 22store_return_mask $93 = RetMask 23copy_constant val = 0 24store_loop_mask $94 = LoopMask 25copy_slot_unmasked $95 = x 26store_loop_mask $96 = LoopMask 27mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 28case_op if ($95 == 0x00000001) { LoopMask = true; $96 = false; } 29branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 16 at #34) 30copy_slot_unmasked $97 = val 31add_imm_int $97 += 0x00000001 32copy_slot_masked val = Mask($97) 33copy_constant $97 = 0 34copy_slot_masked [return_in_one_case].result = Mask($97) 35mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 36label label 0x00000010 37reenable_loop_mask LoopMask |= $96 38branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 17 at #40) 39copy_slot_unmasked $96 = val 40add_imm_int $96 += 0x00000001 41copy_slot_masked val = Mask($96) 42label label 0x00000011 43label label 0x0000000F 44load_loop_mask LoopMask = $94 45copy_slot_unmasked $94 = val 46cmpeq_imm_int $94 = equal($94, 0x00000001) 47copy_slot_masked [return_in_one_case].result = Mask($94) 48load_return_mask RetMask = $93 49copy_slot_unmasked $93 = [return_in_one_case].result 50label label 0x0000000E 51copy_constant $87 = 0 52merge_condition_mask CondMask = $92 & $93 53branch_if_no_lanes_active branch_if_no_lanes_active +18 (label 13 at #69) 54store_return_mask $88 = RetMask 55store_loop_mask $89 = LoopMask 56copy_slot_unmasked $90 = x 57store_loop_mask $91 = LoopMask 58mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 59reenable_loop_mask LoopMask |= $91 60branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 20 at #62) 61copy_constant $91 = 0xFFFFFFFF 62copy_slot_masked [return_in_default].result = Mask($91) 63mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 64label label 0x00000014 65label label 0x00000013 66load_loop_mask LoopMask = $89 67load_return_mask RetMask = $88 68copy_slot_unmasked $88 = [return_in_default].result 69label label 0x00000012 70copy_slot_masked $87 = Mask($88) 71label label 0x0000000D 72load_condition_mask CondMask = $92 73copy_constant $80 = 0 74merge_condition_mask CondMask = $86 & $87 75branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 12 at #97) 76store_return_mask $81 = RetMask 77store_loop_mask $82 = LoopMask 78copy_slot_unmasked $83 = x 79store_loop_mask $84 = LoopMask 80mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 81case_op if ($83 == 0x00000001) { LoopMask = true; $84 = false; } 82branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 23 at #84) 83copy_constant $85 = 0 84copy_slot_masked [return_in_every_case].result = Mask($85) 85mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 86label label 0x00000017 87reenable_loop_mask LoopMask |= $84 88branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 24 at #90) 89copy_constant $84 = 0xFFFFFFFF 90copy_slot_masked [return_in_every_case].result = Mask($84) 91mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 92label label 0x00000018 93label label 0x00000016 94load_loop_mask LoopMask = $82 95load_return_mask RetMask = $81 96copy_slot_unmasked $81 = [return_in_every_case].result 97label label 0x00000015 98copy_slot_masked $80 = Mask($81) 99label label 0x0000000C 100load_condition_mask CondMask = $86 101copy_constant $73 = 0 102merge_condition_mask CondMask = $79 & $80 103branch_if_no_lanes_active branch_if_no_lanes_active +30 (label 11 at #131) 104store_return_mask $74 = RetMask 105copy_constant val₁ = 0 106store_loop_mask $75 = LoopMask 107copy_slot_unmasked $76 = x 108store_loop_mask $77 = LoopMask 109mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 110case_op if ($76 == 0x00000001) { LoopMask = true; $77 = false; } 111branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 27 at #113) 112copy_constant $78 = 0 113copy_slot_masked [return_in_every_case_no_default].result = Mask($78) 114mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 115label label 0x0000001B 116case_op if ($76 == 0x00000002) { LoopMask = true; $77 = false; } 117branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 28 at #119) 118copy_constant $78 = 0xFFFFFFFF 119copy_slot_masked [return_in_every_case_no_default].result = Mask($78) 120mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 121label label 0x0000001C 122label label 0x0000001A 123load_loop_mask LoopMask = $75 124copy_slot_unmasked $75 = val₁ 125add_imm_int $75 += 0x00000001 126copy_slot_masked val₁ = Mask($75) 127cmpeq_imm_int $75 = equal($75, 0x00000001) 128copy_slot_masked [return_in_every_case_no_default].result = Mask($75) 129load_return_mask RetMask = $74 130copy_slot_unmasked $74 = [return_in_every_case_no_default].result 131label label 0x00000019 132copy_slot_masked $73 = Mask($74) 133label label 0x0000000B 134load_condition_mask CondMask = $79 135copy_constant $66 = 0 136merge_condition_mask CondMask = $72 & $73 137branch_if_no_lanes_active branch_if_no_lanes_active +35 (label 10 at #170) 138store_return_mask $67 = RetMask 139copy_constant val₂ = 0 140store_loop_mask $68 = LoopMask 141copy_slot_unmasked $69 = x 142store_loop_mask $70 = LoopMask 143mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 144case_op if ($69 == 0x00000001) { LoopMask = true; $70 = false; } 145branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 31 at #146) 146branch_if_all_lanes_active branch_if_all_lanes_active +15 (label 30 at #159) 147mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 148label label 0x0000001F 149case_op if ($69 == 0x00000002) { LoopMask = true; $70 = false; } 150branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 32 at #152) 151copy_constant $71 = 0xFFFFFFFF 152copy_slot_masked [case_has_break_before_return].result = Mask($71) 153mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 154label label 0x00000020 155reenable_loop_mask LoopMask |= $70 156branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 33 at #158) 157copy_constant $70 = 0xFFFFFFFF 158copy_slot_masked [case_has_break_before_return].result = Mask($70) 159mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 160label label 0x00000021 161label label 0x0000001E 162load_loop_mask LoopMask = $68 163copy_slot_unmasked $68 = val₂ 164add_imm_int $68 += 0x00000001 165copy_slot_masked val₂ = Mask($68) 166cmpeq_imm_int $68 = equal($68, 0x00000001) 167copy_slot_masked [case_has_break_before_return].result = Mask($68) 168load_return_mask RetMask = $67 169copy_slot_unmasked $67 = [case_has_break_before_return].result 170label label 0x0000001D 171copy_slot_masked $66 = Mask($67) 172label label 0x0000000A 173load_condition_mask CondMask = $72 174copy_constant $59 = 0 175merge_condition_mask CondMask = $65 & $66 176branch_if_no_lanes_active branch_if_no_lanes_active +30 (label 9 at #204) 177store_return_mask $60 = RetMask 178store_loop_mask $61 = LoopMask 179copy_slot_unmasked $62 = x 180store_loop_mask $63 = LoopMask 181mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 182case_op if ($62 == 0x00000001) { LoopMask = true; $63 = false; } 183branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 36 at #185) 184copy_constant $64 = 0 185copy_slot_masked [case_has_break_after_return].result = Mask($64) 186mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 187label label 0x00000024 188case_op if ($62 == 0x00000002) { LoopMask = true; $63 = false; } 189branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 37 at #191) 190copy_constant $64 = 0xFFFFFFFF 191copy_slot_masked [case_has_break_after_return].result = Mask($64) 192mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 193label label 0x00000025 194reenable_loop_mask LoopMask |= $63 195branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 38 at #197) 196copy_constant $63 = 0xFFFFFFFF 197copy_slot_masked [case_has_break_after_return].result = Mask($63) 198mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 199label label 0x00000026 200label label 0x00000023 201load_loop_mask LoopMask = $61 202load_return_mask RetMask = $60 203copy_slot_unmasked $60 = [case_has_break_after_return].result 204label label 0x00000022 205copy_slot_masked $59 = Mask($60) 206label label 0x00000009 207load_condition_mask CondMask = $65 208copy_constant $52 = 0 209merge_condition_mask CondMask = $58 & $59 210branch_if_no_lanes_active branch_if_no_lanes_active +35 (label 8 at #243) 211store_return_mask $53 = RetMask 212copy_constant val₃ = 0 213store_loop_mask $54 = LoopMask 214copy_slot_unmasked $55 = x 215store_loop_mask $56 = LoopMask 216mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 217case_op if ($55 == 0x00000001) { LoopMask = true; $56 = false; } 218branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 41 at #220) 219copy_constant $57 = 0 220copy_slot_masked [no_return_in_default].result = Mask($57) 221mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 222label label 0x00000029 223case_op if ($55 == 0x00000002) { LoopMask = true; $56 = false; } 224branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 42 at #226) 225copy_constant $57 = 0xFFFFFFFF 226copy_slot_masked [no_return_in_default].result = Mask($57) 227mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 228label label 0x0000002A 229reenable_loop_mask LoopMask |= $56 230branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 43 at #231) 231branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 40 at #232) 232mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 233label label 0x0000002B 234label label 0x00000028 235load_loop_mask LoopMask = $54 236copy_slot_unmasked $54 = val₃ 237add_imm_int $54 += 0x00000001 238copy_slot_masked val₃ = Mask($54) 239cmpeq_imm_int $54 = equal($54, 0x00000001) 240copy_slot_masked [no_return_in_default].result = Mask($54) 241load_return_mask RetMask = $53 242copy_slot_unmasked $53 = [no_return_in_default].result 243label label 0x00000027 244copy_slot_masked $52 = Mask($53) 245label label 0x00000008 246load_condition_mask CondMask = $58 247copy_constant $45 = 0 248merge_condition_mask CondMask = $51 & $52 249branch_if_no_lanes_active branch_if_no_lanes_active +32 (label 7 at #279) 250store_return_mask $46 = RetMask 251copy_constant val₄ = 0 252store_loop_mask $47 = LoopMask 253copy_slot_unmasked $48 = x 254store_loop_mask $49 = LoopMask 255mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 256case_op if ($48 == 0x00000001) { LoopMask = true; $49 = false; } 257branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 46 at #259) 258copy_constant $50 = 0 259copy_slot_masked [empty_default].result = Mask($50) 260mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 261label label 0x0000002E 262case_op if ($48 == 0x00000002) { LoopMask = true; $49 = false; } 263branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 47 at #265) 264copy_constant $50 = 0xFFFFFFFF 265copy_slot_masked [empty_default].result = Mask($50) 266mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 267label label 0x0000002F 268reenable_loop_mask LoopMask |= $49 269label label 0x00000030 270label label 0x0000002D 271load_loop_mask LoopMask = $47 272copy_slot_unmasked $47 = val₄ 273add_imm_int $47 += 0x00000001 274copy_slot_masked val₄ = Mask($47) 275cmpeq_imm_int $47 = equal($47, 0x00000001) 276copy_slot_masked [empty_default].result = Mask($47) 277load_return_mask RetMask = $46 278copy_slot_unmasked $46 = [empty_default].result 279label label 0x0000002C 280copy_slot_masked $45 = Mask($46) 281label label 0x00000007 282load_condition_mask CondMask = $51 283copy_constant $38 = 0 284merge_condition_mask CondMask = $44 & $45 285branch_if_no_lanes_active branch_if_no_lanes_active +26 (label 6 at #309) 286store_return_mask $39 = RetMask 287store_loop_mask $40 = LoopMask 288copy_slot_unmasked $41 = x 289store_loop_mask $42 = LoopMask 290mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 291case_op if ($41 == 0x00000001) { LoopMask = true; $42 = false; } 292label label 0x00000033 293case_op if ($41 == 0x00000002) { LoopMask = true; $42 = false; } 294branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 52 at #296) 295copy_constant $43 = 0xFFFFFFFF 296copy_slot_masked [return_with_fallthrough].result = Mask($43) 297mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 298label label 0x00000034 299reenable_loop_mask LoopMask |= $42 300branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 53 at #302) 301copy_constant $42 = 0 302copy_slot_masked [return_with_fallthrough].result = Mask($42) 303mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 304label label 0x00000035 305label label 0x00000032 306load_loop_mask LoopMask = $40 307load_return_mask RetMask = $39 308copy_slot_unmasked $39 = [return_with_fallthrough].result 309label label 0x00000031 310copy_slot_masked $38 = Mask($39) 311label label 0x00000006 312load_condition_mask CondMask = $44 313copy_constant $32 = 0 314merge_condition_mask CondMask = $37 & $38 315branch_if_no_lanes_active branch_if_no_lanes_active +31 (label 5 at #344) 316store_return_mask $33 = RetMask 317copy_constant val₅ = 0 318store_loop_mask $34 = LoopMask 319copy_slot_unmasked $35 = x 320store_loop_mask $36 = LoopMask 321mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 322case_op if ($35 == 0x00000001) { LoopMask = true; $36 = false; } 323label label 0x00000038 324case_op if ($35 == 0x00000002) { LoopMask = true; $36 = false; } 325branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 57 at #326) 326branch_if_all_lanes_active branch_if_all_lanes_active +9 (label 55 at #333) 327mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 328label label 0x00000039 329reenable_loop_mask LoopMask |= $36 330branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 58 at #332) 331copy_constant $36 = 0 332copy_slot_masked [fallthrough_ends_in_break].result = Mask($36) 333mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 334label label 0x0000003A 335label label 0x00000037 336load_loop_mask LoopMask = $34 337copy_slot_unmasked $34 = val₅ 338add_imm_int $34 += 0x00000001 339copy_slot_masked val₅ = Mask($34) 340cmpeq_imm_int $34 = equal($34, 0x00000001) 341copy_slot_masked [fallthrough_ends_in_break].result = Mask($34) 342load_return_mask RetMask = $33 343copy_slot_unmasked $33 = [fallthrough_ends_in_break].result 344label label 0x00000036 345copy_slot_masked $32 = Mask($33) 346label label 0x00000005 347load_condition_mask CondMask = $37 348copy_constant $27 = 0 349merge_condition_mask CondMask = $31 & $32 350branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 4 at #371) 351copy_constant val₆ = 0 352store_loop_mask $28 = LoopMask 353copy_slot_unmasked $29 = x 354store_loop_mask $30 = LoopMask 355mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 356case_op if ($29 == 0x00000001) { LoopMask = true; $30 = false; } 357label label 0x0000003D 358case_op if ($29 == 0x00000002) { LoopMask = true; $30 = false; } 359label label 0x0000003E 360reenable_loop_mask LoopMask |= $30 361branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 63 at #362) 362branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 60 at #363) 363mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 364label label 0x0000003F 365label label 0x0000003C 366load_loop_mask LoopMask = $28 367copy_slot_unmasked $28 = val₆ 368add_imm_int $28 += 0x00000001 369copy_slot_masked val₆ = Mask($28) 370cmpeq_imm_int $28 = equal($28, 0x00000001) 371label label 0x0000003B 372copy_slot_masked $27 = Mask($28) 373label label 0x00000004 374load_condition_mask CondMask = $31 375copy_constant $21 = 0 376merge_condition_mask CondMask = $26 & $27 377branch_if_no_lanes_active branch_if_no_lanes_active +22 (label 3 at #397) 378store_return_mask $22 = RetMask 379store_loop_mask $23 = LoopMask 380copy_slot_unmasked $24 = x 381store_loop_mask $25 = LoopMask 382mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 383case_op if ($24 == 0x00000001) { LoopMask = true; $25 = false; } 384label label 0x00000042 385case_op if ($24 == 0x00000002) { LoopMask = true; $25 = false; } 386label label 0x00000043 387reenable_loop_mask LoopMask |= $25 388branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 68 at #390) 389copy_constant $25 = 0xFFFFFFFF 390copy_slot_masked [fallthrough_to_default_with_return].result = Mask($25) 391mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 392label label 0x00000044 393label label 0x00000041 394load_loop_mask LoopMask = $23 395load_return_mask RetMask = $22 396copy_slot_unmasked $22 = [fallthrough_to_default_with_return].result 397label label 0x00000040 398copy_slot_masked $21 = Mask($22) 399label label 0x00000003 400load_condition_mask CondMask = $26 401copy_constant $13 = 0 402merge_condition_mask CondMask = $20 & $21 403branch_if_no_lanes_active branch_if_no_lanes_active +44 (label 2 at #445) 404store_return_mask $14 = RetMask 405copy_constant val₇ = 0 406store_loop_mask $15 = LoopMask 407copy_slot_unmasked $16 = x 408store_loop_mask $17 = LoopMask 409mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 410case_op if ($16 == 0x00000001) { LoopMask = true; $17 = false; } 411branch_if_no_lanes_active branch_if_no_lanes_active +21 (label 71 at #430) 412copy_constant i = 0 413store_loop_mask $18 = LoopMask 414jump jump +10 (label 73 at #422) 415label label 0x0000004A 416copy_slot_unmasked $19 = val₇ 417add_imm_int $19 += 0x00000001 418copy_slot_masked val₇ = Mask($19) 419branch_if_all_lanes_active branch_if_all_lanes_active +11 (label 72 at #428) 420mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 421copy_slot_unmasked $19 = i 422add_imm_int $19 += 0x00000001 423copy_slot_masked i = Mask($19) 424label label 0x00000049 425copy_slot_unmasked $19 = i 426cmplt_imm_int $19 = lessThan($19, 0x00000005) 427merge_loop_mask LoopMask &= $19 428stack_rewind 429branch_if_any_lanes_active branch_if_any_lanes_active -14 (label 74 at #413) 430label label 0x00000048 431load_loop_mask LoopMask = $18 432label label 0x00000047 433case_op if ($16 == 0x00000002) { LoopMask = true; $17 = false; } 434label label 0x0000004B 435reenable_loop_mask LoopMask |= $17 436branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 76 at #438) 437copy_constant $17 = 0xFFFFFFFF 438copy_slot_masked [fallthrough_with_loop_break].result = Mask($17) 439mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 440label label 0x0000004C 441label label 0x00000046 442load_loop_mask LoopMask = $15 443load_return_mask RetMask = $14 444copy_slot_unmasked $14 = [fallthrough_with_loop_break].result 445label label 0x00000045 446copy_slot_masked $13 = Mask($14) 447label label 0x00000002 448load_condition_mask CondMask = $20 449copy_constant $0 = 0 450merge_condition_mask CondMask = $12 & $13 451branch_if_no_lanes_active branch_if_no_lanes_active +45 (label 1 at #494) 452store_return_mask $1 = RetMask 453copy_constant val₈ = 0 454store_loop_mask $2 = LoopMask 455copy_slot_unmasked $3 = x 456store_loop_mask $4 = LoopMask 457mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 458case_op if ($3 == 0x00000001) { LoopMask = true; $4 = false; } 459branch_if_no_lanes_active branch_if_no_lanes_active +22 (label 79 at #479) 460copy_constant i₁ = 0 461store_loop_mask $5 = LoopMask 462jump jump +11 (label 81 at #471) 463label label 0x00000052 464copy_constant $20 = 0 465copy_slot_unmasked $6 = val₈ 466add_imm_int $6 += 0x00000001 467copy_slot_masked val₈ = Mask($6) 468continue_op $20 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) 469reenable_loop_mask LoopMask |= $20 470copy_slot_unmasked $6 = i₁ 471add_imm_int $6 += 0x00000001 472copy_slot_masked i₁ = Mask($6) 473label label 0x00000051 474copy_slot_unmasked $6 = i₁ 475cmplt_imm_int $6 = lessThan($6, 0x00000005) 476merge_loop_mask LoopMask &= $6 477stack_rewind 478branch_if_any_lanes_active branch_if_any_lanes_active -15 (label 82 at #461) 479label label 0x00000050 480load_loop_mask LoopMask = $5 481label label 0x0000004F 482case_op if ($3 == 0x00000002) { LoopMask = true; $4 = false; } 483label label 0x00000053 484reenable_loop_mask LoopMask |= $4 485branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 84 at #487) 486copy_constant $4 = 0xFFFFFFFF 487copy_slot_masked [fallthrough_with_loop_continue].result = Mask($4) 488mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) 489label label 0x00000054 490label label 0x0000004E 491load_loop_mask LoopMask = $2 492load_return_mask RetMask = $1 493copy_slot_unmasked $1 = [fallthrough_with_loop_continue].result 494label label 0x0000004D 495copy_slot_masked $0 = Mask($1) 496label label 0x00000001 497load_condition_mask CondMask = $12 498swizzle_4 $0..3 = ($0..3).xxxx 499copy_4_uniforms $4..7 = colorRed 500copy_4_uniforms $8..11 = colorGreen 501mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 502load_src src.rgba = $0..3 503