| 43 instructions |
| |
| store_src_rg coords = src.rg |
| init_lane_masks CondMask = LoopMask = RetMask = true |
| splat_4_constants x = 0x3F800000 (1.0) |
| store_loop_mask $0 = LoopMask |
| label label 0x00000001 |
| copy_slot_unmasked $1 = x(0) |
| add_imm_float $1 += 0xBE800000 (-0.25) |
| copy_slot_masked x(0) = Mask($1) |
| store_condition_mask $1 = CondMask |
| copy_slot_unmasked $2 = x(0) |
| cmple_imm_float $2 = lessThanEqual($2, 0) |
| merge_condition_mask CondMask = $1 & $2 |
| branch_if_all_lanes_active branch_if_all_lanes_active +8 (label 0 at #21) |
| mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) |
| load_condition_mask CondMask = $1 |
| copy_slot_unmasked $1 = x(3) |
| cmpeq_imm_float $1 = equal($1, 0x3F800000 (1.0)) |
| merge_loop_mask LoopMask &= $1 |
| stack_rewind |
| branch_if_any_lanes_active branch_if_any_lanes_active -15 (label 1 at #5) |
| label label 0 |
| load_loop_mask LoopMask = $0 |
| store_loop_mask $0 = LoopMask |
| label label 0x00000003 |
| copy_constant $4 = 0 |
| copy_slot_unmasked $1 = x(2) |
| add_imm_float $1 += 0xBE800000 (-0.25) |
| copy_slot_masked x(2) = Mask($1) |
| store_condition_mask $1 = CondMask |
| copy_slot_unmasked $2 = x(3) |
| cmpeq_imm_float $2 = equal($2, 0x3F800000 (1.0)) |
| merge_condition_mask CondMask = $1 & $2 |
| continue_op $4 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) |
| load_condition_mask CondMask = $1 |
| copy_constant $1 = 0 |
| copy_slot_masked x(1) = Mask($1) |
| reenable_loop_mask LoopMask |= $4 |
| copy_constant $1 = 0 |
| copy_slot_unmasked $2 = x(2) |
| cmplt_float $1 = lessThan($1, $2) |
| merge_loop_mask LoopMask &= $1 |
| stack_rewind |
| branch_if_any_lanes_active branch_if_any_lanes_active -19 (label 3 at #24) |
| label label 0x00000002 |
| load_loop_mask LoopMask = $0 |
| copy_4_slots_unmasked $0..3 = x |
| load_src src.rgba = $0..3 |