125 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 copy_constant _0_val = 0 store_loop_mask $0 = LoopMask copy_slot_unmasked $1 = x store_loop_mask $2 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($1 == 0x00000001) { LoopMask = true; $2 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +21 (label 1 at #33) copy_constant _1_i = 0 store_loop_mask $3 = LoopMask jump jump +10 (label 3 at #25) label label 0x00000004 copy_slot_unmasked $4 = _0_val add_imm_int $4 += 0x00000001 copy_slot_masked _0_val = Mask($4) branch_if_all_lanes_active branch_if_all_lanes_active +11 (label 2 at #31) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) copy_slot_unmasked $4 = _1_i add_imm_int $4 += 0x00000001 copy_slot_masked _1_i = Mask($4) label label 0x00000003 copy_slot_unmasked $4 = _1_i cmplt_imm_int $4 = lessThan($4, 0x0000000A) merge_loop_mask LoopMask &= $4 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -14 (label 4 at #16) label label 0x00000002 load_loop_mask LoopMask = $3 label label 0x00000001 reenable_loop_mask LoopMask |= $2 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 5 at #39) copy_slot_unmasked $2 = _0_val add_imm_int $2 += 0x00000001 copy_slot_masked _0_val = Mask($2) label label 0x00000005 label label 0 load_loop_mask LoopMask = $0 store_condition_mask $12 = CondMask store_condition_mask $19 = CondMask copy_slot_unmasked $20 = _0_val cmpeq_imm_int $20 = equal($20, 0x00000002) copy_constant $13 = 0 merge_condition_mask CondMask = $19 & $20 branch_if_no_lanes_active branch_if_no_lanes_active +42 (label 8 at #90) copy_constant val = 0 store_loop_mask $14 = LoopMask copy_slot_unmasked $15 = x store_loop_mask $16 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($15 == 0x00000001) { LoopMask = true; $16 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +22 (label 11 at #77) copy_constant i = 0 store_loop_mask $17 = LoopMask jump jump +11 (label 13 at #69) label label 0x0000000E copy_constant $21 = 0 copy_slot_unmasked $18 = val add_imm_int $18 += 0x00000001 copy_slot_masked val = Mask($18) continue_op $21 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) reenable_loop_mask LoopMask |= $21 copy_slot_unmasked $18 = i add_imm_int $18 += 0x00000001 copy_slot_masked i = Mask($18) label label 0x0000000D copy_slot_unmasked $18 = i cmplt_imm_int $18 = lessThan($18, 0x0000000A) merge_loop_mask LoopMask &= $18 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -15 (label 14 at #59) label label 0x0000000C load_loop_mask LoopMask = $17 label label 0x0000000B reenable_loop_mask LoopMask |= $16 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 15 at #83) copy_slot_unmasked $16 = val add_imm_int $16 += 0x00000001 copy_slot_masked val = Mask($16) label label 0x0000000F label label 0x0000000A load_loop_mask LoopMask = $14 copy_slot_unmasked $14 = val cmpeq_imm_int $14 = equal($14, 0x0000000B) label label 0x00000009 copy_slot_masked $13 = Mask($14) label label 0x00000008 load_condition_mask CondMask = $19 copy_constant $0 = 0 merge_condition_mask CondMask = $12 & $13 branch_if_no_lanes_active branch_if_no_lanes_active +47 (label 7 at #141) store_return_mask $1 = RetMask splat_2_constants val₁, i₁ = 0 store_loop_mask $2 = LoopMask jump jump +28 (label 18 at #126) label label 0x00000013 store_loop_mask $3 = LoopMask copy_slot_unmasked $4 = x store_loop_mask $5 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($4 == 0x00000001) { LoopMask = true; $5 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +6 (label 21 at #111) copy_slot_unmasked $6 = val₁ add_imm_int $6 += 0x00000001 copy_slot_masked val₁ = Mask($6) branch_if_all_lanes_active branch_if_all_lanes_active +9 (label 20 at #118) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000015 reenable_loop_mask LoopMask |= $5 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 22 at #117) copy_constant $5 = 0 copy_slot_masked [loop_with_break_in_switch].result = Mask($5) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000016 label label 0x00000014 load_loop_mask LoopMask = $3 copy_slot_unmasked $3 = val₁ add_imm_int $3 += 0x00000001 copy_slot_masked val₁ = Mask($3) copy_slot_unmasked $3 = i₁ add_imm_int $3 += 0x00000001 copy_slot_masked i₁ = Mask($3) label label 0x00000012 copy_slot_unmasked $3 = i₁ cmplt_imm_int $3 = lessThan($3, 0x0000000A) merge_loop_mask LoopMask &= $3 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -32 (label 19 at #99) label label 0x00000011 load_loop_mask LoopMask = $2 copy_slot_unmasked $2 = val₁ cmpeq_imm_int $2 = equal($2, 0x00000014) copy_slot_masked [loop_with_break_in_switch].result = Mask($2) load_return_mask RetMask = $1 copy_slot_unmasked $1 = [loop_with_break_in_switch].result label label 0x00000010 copy_slot_masked $0 = Mask($1) label label 0x00000007 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