| 430 instructions |
| |
| store_src_rg coords = src.rg |
| init_lane_masks CondMask = LoopMask = RetMask = true |
| copy_uniform $0 = colorGreen(1) |
| cast_to_int_from_float $0 = FloatToInt($0) |
| copy_slot_unmasked x = $0 |
| store_condition_mask $12 = CondMask |
| store_condition_mask $20 = CondMask |
| store_condition_mask $26 = CondMask |
| store_condition_mask $31 = CondMask |
| store_condition_mask $37 = CondMask |
| store_condition_mask $44 = CondMask |
| store_condition_mask $51 = CondMask |
| store_condition_mask $58 = CondMask |
| store_condition_mask $65 = CondMask |
| store_condition_mask $72 = CondMask |
| store_condition_mask $79 = CondMask |
| store_condition_mask $86 = CondMask |
| store_condition_mask $92 = CondMask |
| branch_if_no_lanes_active branch_if_no_lanes_active +30 (label 14 at #49) |
| copy_slot_unmasked x₁ = x |
| store_return_mask $93 = RetMask |
| copy_constant val = 0 |
| store_loop_mask $94 = LoopMask |
| copy_slot_unmasked $95 = x₁ |
| store_loop_mask $96 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($95 == 0x00000001) { LoopMask = true; $96 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +7 (label 16 at #35) |
| copy_slot_unmasked $97 = val |
| add_imm_int $97 += 0x00000001 |
| copy_slot_masked val = Mask($97) |
| copy_constant $97 = 0 |
| copy_slot_masked [return_in_one_case].result = Mask($97) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000010 |
| reenable_loop_mask LoopMask |= $96 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 17 at #41) |
| copy_slot_unmasked $96 = val |
| add_imm_int $96 += 0x00000001 |
| copy_slot_masked val = Mask($96) |
| label label 0x00000011 |
| label label 0x0000000F |
| load_loop_mask LoopMask = $94 |
| copy_slot_unmasked $94 = val |
| cmpeq_imm_int $94 = equal($94, 0x00000001) |
| copy_slot_masked [return_in_one_case].result = Mask($94) |
| load_return_mask RetMask = $93 |
| copy_slot_unmasked $93 = [return_in_one_case].result |
| label label 0x0000000E |
| copy_constant $87 = 0 |
| merge_condition_mask CondMask = $92 & $93 |
| branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 13 at #71) |
| copy_slot_unmasked x₂ = x |
| store_return_mask $88 = RetMask |
| store_loop_mask $89 = LoopMask |
| copy_slot_unmasked $90 = x₂ |
| store_loop_mask $91 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| reenable_loop_mask LoopMask |= $91 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 20 at #64) |
| copy_constant $91 = 0xFFFFFFFF |
| copy_slot_masked [return_in_default].result = Mask($91) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000014 |
| label label 0x00000013 |
| load_loop_mask LoopMask = $89 |
| load_return_mask RetMask = $88 |
| copy_slot_unmasked $88 = [return_in_default].result |
| label label 0x00000012 |
| copy_slot_masked $87 = Mask($88) |
| label label 0x0000000D |
| load_condition_mask CondMask = $92 |
| copy_constant $80 = 0 |
| merge_condition_mask CondMask = $86 & $87 |
| branch_if_no_lanes_active branch_if_no_lanes_active +25 (label 12 at #100) |
| copy_slot_unmasked x₃ = x |
| store_return_mask $81 = RetMask |
| store_loop_mask $82 = LoopMask |
| copy_slot_unmasked $83 = x₃ |
| store_loop_mask $84 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($83 == 0x00000001) { LoopMask = true; $84 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 23 at #87) |
| copy_constant $85 = 0 |
| copy_slot_masked [return_in_every_case].result = Mask($85) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000017 |
| reenable_loop_mask LoopMask |= $84 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 24 at #93) |
| copy_constant $84 = 0xFFFFFFFF |
| copy_slot_masked [return_in_every_case].result = Mask($84) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000018 |
| label label 0x00000016 |
| load_loop_mask LoopMask = $82 |
| load_return_mask RetMask = $81 |
| copy_slot_unmasked $81 = [return_in_every_case].result |
| label label 0x00000015 |
| copy_slot_masked $80 = Mask($81) |
| label label 0x0000000C |
| load_condition_mask CondMask = $86 |
| copy_constant $73 = 0 |
| merge_condition_mask CondMask = $79 & $80 |
| branch_if_no_lanes_active branch_if_no_lanes_active +31 (label 11 at #135) |
| copy_slot_unmasked x₄ = x |
| store_return_mask $74 = RetMask |
| copy_constant val₁ = 0 |
| store_loop_mask $75 = LoopMask |
| copy_slot_unmasked $76 = x₄ |
| store_loop_mask $77 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($76 == 0x00000001) { LoopMask = true; $77 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 27 at #117) |
| copy_constant $78 = 0 |
| copy_slot_masked [return_in_every_case_no_default].result = Mask($78) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000001B |
| case_op if ($76 == 0x00000002) { LoopMask = true; $77 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 28 at #123) |
| copy_constant $78 = 0xFFFFFFFF |
| copy_slot_masked [return_in_every_case_no_default].result = Mask($78) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000001C |
| label label 0x0000001A |
| load_loop_mask LoopMask = $75 |
| copy_slot_unmasked $75 = val₁ |
| add_imm_int $75 += 0x00000001 |
| copy_slot_masked val₁ = Mask($75) |
| cmpeq_imm_int $75 = equal($75, 0x00000001) |
| copy_slot_masked [return_in_every_case_no_default].result = Mask($75) |
| load_return_mask RetMask = $74 |
| copy_slot_unmasked $74 = [return_in_every_case_no_default].result |
| label label 0x00000019 |
| copy_slot_masked $73 = Mask($74) |
| label label 0x0000000B |
| load_condition_mask CondMask = $79 |
| copy_constant $66 = 0 |
| merge_condition_mask CondMask = $72 & $73 |
| branch_if_no_lanes_active branch_if_no_lanes_active +36 (label 10 at #175) |
| copy_slot_unmasked x₅ = x |
| store_return_mask $67 = RetMask |
| copy_constant val₂ = 0 |
| store_loop_mask $68 = LoopMask |
| copy_slot_unmasked $69 = x₅ |
| store_loop_mask $70 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($69 == 0x00000001) { LoopMask = true; $70 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 31 at #151) |
| branch_if_all_lanes_active branch_if_all_lanes_active +15 (label 30 at #164) |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000001F |
| case_op if ($69 == 0x00000002) { LoopMask = true; $70 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 32 at #157) |
| copy_constant $71 = 0xFFFFFFFF |
| copy_slot_masked [case_has_break_before_return].result = Mask($71) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000020 |
| reenable_loop_mask LoopMask |= $70 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 33 at #163) |
| copy_constant $70 = 0xFFFFFFFF |
| copy_slot_masked [case_has_break_before_return].result = Mask($70) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000021 |
| label label 0x0000001E |
| load_loop_mask LoopMask = $68 |
| copy_slot_unmasked $68 = val₂ |
| add_imm_int $68 += 0x00000001 |
| copy_slot_masked val₂ = Mask($68) |
| cmpeq_imm_int $68 = equal($68, 0x00000001) |
| copy_slot_masked [case_has_break_before_return].result = Mask($68) |
| load_return_mask RetMask = $67 |
| copy_slot_unmasked $67 = [case_has_break_before_return].result |
| label label 0x0000001D |
| copy_slot_masked $66 = Mask($67) |
| label label 0x0000000A |
| load_condition_mask CondMask = $72 |
| copy_constant $59 = 0 |
| merge_condition_mask CondMask = $65 & $66 |
| branch_if_no_lanes_active branch_if_no_lanes_active +31 (label 9 at #210) |
| copy_slot_unmasked x₆ = x |
| store_return_mask $60 = RetMask |
| store_loop_mask $61 = LoopMask |
| copy_slot_unmasked $62 = x₆ |
| store_loop_mask $63 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($62 == 0x00000001) { LoopMask = true; $63 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 36 at #191) |
| copy_constant $64 = 0 |
| copy_slot_masked [case_has_break_after_return].result = Mask($64) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000024 |
| case_op if ($62 == 0x00000002) { LoopMask = true; $63 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 37 at #197) |
| copy_constant $64 = 0xFFFFFFFF |
| copy_slot_masked [case_has_break_after_return].result = Mask($64) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000025 |
| reenable_loop_mask LoopMask |= $63 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 38 at #203) |
| copy_constant $63 = 0xFFFFFFFF |
| copy_slot_masked [case_has_break_after_return].result = Mask($63) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000026 |
| label label 0x00000023 |
| load_loop_mask LoopMask = $61 |
| load_return_mask RetMask = $60 |
| copy_slot_unmasked $60 = [case_has_break_after_return].result |
| label label 0x00000022 |
| copy_slot_masked $59 = Mask($60) |
| label label 0x00000009 |
| load_condition_mask CondMask = $65 |
| copy_constant $52 = 0 |
| merge_condition_mask CondMask = $58 & $59 |
| branch_if_no_lanes_active branch_if_no_lanes_active +36 (label 8 at #250) |
| copy_slot_unmasked x₇ = x |
| store_return_mask $53 = RetMask |
| copy_constant val₃ = 0 |
| store_loop_mask $54 = LoopMask |
| copy_slot_unmasked $55 = x₇ |
| store_loop_mask $56 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($55 == 0x00000001) { LoopMask = true; $56 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 41 at #227) |
| copy_constant $57 = 0 |
| copy_slot_masked [no_return_in_default].result = Mask($57) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000029 |
| case_op if ($55 == 0x00000002) { LoopMask = true; $56 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 42 at #233) |
| copy_constant $57 = 0xFFFFFFFF |
| copy_slot_masked [no_return_in_default].result = Mask($57) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000002A |
| reenable_loop_mask LoopMask |= $56 |
| branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 43 at #238) |
| branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 40 at #239) |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000002B |
| label label 0x00000028 |
| load_loop_mask LoopMask = $54 |
| copy_slot_unmasked $54 = val₃ |
| add_imm_int $54 += 0x00000001 |
| copy_slot_masked val₃ = Mask($54) |
| cmpeq_imm_int $54 = equal($54, 0x00000001) |
| copy_slot_masked [no_return_in_default].result = Mask($54) |
| load_return_mask RetMask = $53 |
| copy_slot_unmasked $53 = [no_return_in_default].result |
| label label 0x00000027 |
| copy_slot_masked $52 = Mask($53) |
| label label 0x00000008 |
| load_condition_mask CondMask = $58 |
| copy_constant $45 = 0 |
| merge_condition_mask CondMask = $51 & $52 |
| branch_if_no_lanes_active branch_if_no_lanes_active +33 (label 7 at #287) |
| copy_slot_unmasked x₈ = x |
| store_return_mask $46 = RetMask |
| copy_constant val₄ = 0 |
| store_loop_mask $47 = LoopMask |
| copy_slot_unmasked $48 = x₈ |
| store_loop_mask $49 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($48 == 0x00000001) { LoopMask = true; $49 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 46 at #267) |
| copy_constant $50 = 0 |
| copy_slot_masked [empty_default].result = Mask($50) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000002E |
| case_op if ($48 == 0x00000002) { LoopMask = true; $49 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 47 at #273) |
| copy_constant $50 = 0xFFFFFFFF |
| copy_slot_masked [empty_default].result = Mask($50) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000002F |
| reenable_loop_mask LoopMask |= $49 |
| label label 0x00000030 |
| label label 0x0000002D |
| load_loop_mask LoopMask = $47 |
| copy_slot_unmasked $47 = val₄ |
| add_imm_int $47 += 0x00000001 |
| copy_slot_masked val₄ = Mask($47) |
| cmpeq_imm_int $47 = equal($47, 0x00000001) |
| copy_slot_masked [empty_default].result = Mask($47) |
| load_return_mask RetMask = $46 |
| copy_slot_unmasked $46 = [empty_default].result |
| label label 0x0000002C |
| copy_slot_masked $45 = Mask($46) |
| label label 0x00000007 |
| load_condition_mask CondMask = $51 |
| copy_constant $38 = 0 |
| merge_condition_mask CondMask = $44 & $45 |
| branch_if_no_lanes_active branch_if_no_lanes_active +27 (label 6 at #318) |
| copy_slot_unmasked x₉ = x |
| store_return_mask $39 = RetMask |
| store_loop_mask $40 = LoopMask |
| copy_slot_unmasked $41 = x₉ |
| store_loop_mask $42 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($41 == 0x00000001) { LoopMask = true; $42 = false; } |
| label label 0x00000033 |
| case_op if ($41 == 0x00000002) { LoopMask = true; $42 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 52 at #305) |
| copy_constant $43 = 0xFFFFFFFF |
| copy_slot_masked [return_with_fallthrough].result = Mask($43) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000034 |
| reenable_loop_mask LoopMask |= $42 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 53 at #311) |
| copy_constant $42 = 0 |
| copy_slot_masked [return_with_fallthrough].result = Mask($42) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000035 |
| label label 0x00000032 |
| load_loop_mask LoopMask = $40 |
| load_return_mask RetMask = $39 |
| copy_slot_unmasked $39 = [return_with_fallthrough].result |
| label label 0x00000031 |
| copy_slot_masked $38 = Mask($39) |
| label label 0x00000006 |
| load_condition_mask CondMask = $44 |
| copy_constant $32 = 0 |
| merge_condition_mask CondMask = $37 & $38 |
| branch_if_no_lanes_active branch_if_no_lanes_active +32 (label 5 at #354) |
| copy_slot_unmasked x₁₀ = x |
| store_return_mask $33 = RetMask |
| copy_constant val₅ = 0 |
| store_loop_mask $34 = LoopMask |
| copy_slot_unmasked $35 = x₁₀ |
| store_loop_mask $36 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($35 == 0x00000001) { LoopMask = true; $36 = false; } |
| label label 0x00000038 |
| case_op if ($35 == 0x00000002) { LoopMask = true; $36 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 57 at #336) |
| branch_if_all_lanes_active branch_if_all_lanes_active +9 (label 55 at #343) |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000039 |
| reenable_loop_mask LoopMask |= $36 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 58 at #342) |
| copy_constant $36 = 0 |
| copy_slot_masked [fallthrough_ends_in_break].result = Mask($36) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000003A |
| label label 0x00000037 |
| load_loop_mask LoopMask = $34 |
| copy_slot_unmasked $34 = val₅ |
| add_imm_int $34 += 0x00000001 |
| copy_slot_masked val₅ = Mask($34) |
| cmpeq_imm_int $34 = equal($34, 0x00000001) |
| copy_slot_masked [fallthrough_ends_in_break].result = Mask($34) |
| load_return_mask RetMask = $33 |
| copy_slot_unmasked $33 = [fallthrough_ends_in_break].result |
| label label 0x00000036 |
| copy_slot_masked $32 = Mask($33) |
| label label 0x00000005 |
| load_condition_mask CondMask = $37 |
| copy_constant $27 = 0 |
| merge_condition_mask CondMask = $31 & $32 |
| branch_if_no_lanes_active branch_if_no_lanes_active +24 (label 4 at #382) |
| copy_slot_unmasked x₁₁ = x |
| copy_constant val₆ = 0 |
| store_loop_mask $28 = LoopMask |
| copy_slot_unmasked $29 = x₁₁ |
| store_loop_mask $30 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($29 == 0x00000001) { LoopMask = true; $30 = false; } |
| label label 0x0000003D |
| case_op if ($29 == 0x00000002) { LoopMask = true; $30 = false; } |
| label label 0x0000003E |
| reenable_loop_mask LoopMask |= $30 |
| branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 63 at #373) |
| branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 60 at #374) |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000003F |
| label label 0x0000003C |
| load_loop_mask LoopMask = $28 |
| copy_slot_unmasked $28 = val₆ |
| add_imm_int $28 += 0x00000001 |
| copy_slot_masked val₆ = Mask($28) |
| cmpeq_imm_int $28 = equal($28, 0x00000001) |
| label label 0x0000003B |
| copy_slot_masked $27 = Mask($28) |
| label label 0x00000004 |
| load_condition_mask CondMask = $31 |
| copy_constant $21 = 0 |
| merge_condition_mask CondMask = $26 & $27 |
| branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 3 at #409) |
| copy_slot_unmasked x₁₂ = x |
| store_return_mask $22 = RetMask |
| store_loop_mask $23 = LoopMask |
| copy_slot_unmasked $24 = x₁₂ |
| store_loop_mask $25 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($24 == 0x00000001) { LoopMask = true; $25 = false; } |
| label label 0x00000042 |
| case_op if ($24 == 0x00000002) { LoopMask = true; $25 = false; } |
| label label 0x00000043 |
| reenable_loop_mask LoopMask |= $25 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 68 at #402) |
| copy_constant $25 = 0xFFFFFFFF |
| copy_slot_masked [fallthrough_to_default_with_return].result = Mask($25) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000044 |
| label label 0x00000041 |
| load_loop_mask LoopMask = $23 |
| load_return_mask RetMask = $22 |
| copy_slot_unmasked $22 = [fallthrough_to_default_with_return].result |
| label label 0x00000040 |
| copy_slot_masked $21 = Mask($22) |
| label label 0x00000003 |
| load_condition_mask CondMask = $26 |
| copy_constant $13 = 0 |
| merge_condition_mask CondMask = $20 & $21 |
| branch_if_no_lanes_active branch_if_no_lanes_active +45 (label 2 at #458) |
| copy_slot_unmasked x₁₃ = x |
| store_return_mask $14 = RetMask |
| copy_constant val₇ = 0 |
| store_loop_mask $15 = LoopMask |
| copy_slot_unmasked $16 = x₁₃ |
| store_loop_mask $17 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($16 == 0x00000001) { LoopMask = true; $17 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +21 (label 71 at #443) |
| copy_constant i = 0 |
| store_loop_mask $18 = LoopMask |
| jump jump +10 (label 73 at #435) |
| label label 0x0000004A |
| copy_slot_unmasked $19 = val₇ |
| add_imm_int $19 += 0x00000001 |
| copy_slot_masked val₇ = Mask($19) |
| branch_if_all_lanes_active branch_if_all_lanes_active +11 (label 72 at #441) |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| copy_slot_unmasked $19 = i |
| add_imm_int $19 += 0x00000001 |
| copy_slot_masked i = Mask($19) |
| label label 0x00000049 |
| copy_slot_unmasked $19 = i |
| cmplt_imm_int $19 = lessThan($19, 0x00000005) |
| merge_loop_mask LoopMask &= $19 |
| stack_rewind |
| branch_if_any_lanes_active branch_if_any_lanes_active -14 (label 74 at #426) |
| label label 0x00000048 |
| load_loop_mask LoopMask = $18 |
| label label 0x00000047 |
| case_op if ($16 == 0x00000002) { LoopMask = true; $17 = false; } |
| label label 0x0000004B |
| reenable_loop_mask LoopMask |= $17 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 76 at #451) |
| copy_constant $17 = 0xFFFFFFFF |
| copy_slot_masked [fallthrough_with_loop_break].result = Mask($17) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x0000004C |
| label label 0x00000046 |
| load_loop_mask LoopMask = $15 |
| load_return_mask RetMask = $14 |
| copy_slot_unmasked $14 = [fallthrough_with_loop_break].result |
| label label 0x00000045 |
| copy_slot_masked $13 = Mask($14) |
| label label 0x00000002 |
| load_condition_mask CondMask = $20 |
| copy_constant $0 = 0 |
| merge_condition_mask CondMask = $12 & $13 |
| branch_if_no_lanes_active branch_if_no_lanes_active +46 (label 1 at #508) |
| copy_slot_unmasked x₁₄ = x |
| store_return_mask $1 = RetMask |
| copy_constant val₈ = 0 |
| store_loop_mask $2 = LoopMask |
| copy_slot_unmasked $3 = x₁₄ |
| store_loop_mask $4 = LoopMask |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| case_op if ($3 == 0x00000001) { LoopMask = true; $4 = false; } |
| branch_if_no_lanes_active branch_if_no_lanes_active +22 (label 79 at #493) |
| copy_constant i₁ = 0 |
| store_loop_mask $5 = LoopMask |
| jump jump +11 (label 81 at #485) |
| label label 0x00000052 |
| copy_constant $20 = 0 |
| copy_slot_unmasked $6 = val₈ |
| add_imm_int $6 += 0x00000001 |
| copy_slot_masked val₈ = Mask($6) |
| continue_op $20 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) |
| reenable_loop_mask LoopMask |= $20 |
| copy_slot_unmasked $6 = i₁ |
| add_imm_int $6 += 0x00000001 |
| copy_slot_masked i₁ = Mask($6) |
| label label 0x00000051 |
| copy_slot_unmasked $6 = i₁ |
| cmplt_imm_int $6 = lessThan($6, 0x00000005) |
| merge_loop_mask LoopMask &= $6 |
| stack_rewind |
| branch_if_any_lanes_active branch_if_any_lanes_active -15 (label 82 at #475) |
| label label 0x00000050 |
| load_loop_mask LoopMask = $5 |
| label label 0x0000004F |
| case_op if ($3 == 0x00000002) { LoopMask = true; $4 = false; } |
| label label 0x00000053 |
| reenable_loop_mask LoopMask |= $4 |
| branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 84 at #501) |
| copy_constant $4 = 0xFFFFFFFF |
| copy_slot_masked [fallthrough_with_loop_continue].result = Mask($4) |
| mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) |
| label label 0x00000054 |
| label label 0x0000004E |
| load_loop_mask LoopMask = $2 |
| load_return_mask RetMask = $1 |
| copy_slot_unmasked $1 = [fallthrough_with_loop_continue].result |
| label label 0x0000004D |
| copy_slot_masked $0 = Mask($1) |
| label label 0x00000001 |
| load_condition_mask CondMask = $12 |
| swizzle_4 $0..3 = ($0..3).xxxx |
| copy_4_uniforms $4..7 = colorRed |
| copy_4_uniforms $8..11 = colorGreen |
| mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) |
| load_src src.rgba = $0..3 |