45 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 jump jump +12 (label 1 at #17) label label 0x00000002 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 +9 (label 0 at #23) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) load_condition_mask CondMask = $1 label label 0x00000001 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 -16 (label 2 at #6) label label 0 load_loop_mask LoopMask = $0 store_loop_mask $0 = LoopMask jump jump +15 (label 4 at #41) label label 0x00000005 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 label label 0x00000004 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 -20 (label 5 at #27) label label 0x00000003 load_loop_mask LoopMask = $0 copy_4_slots_unmasked $0..3 = x load_src src.rgba = $0..3