416 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 +29 (label 14 at #48) 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 #34) 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 #40) 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 +18 (label 13 at #69) 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 #62) 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 +24 (label 12 at #97) 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 #84) 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 #90) 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 +30 (label 11 at #131) 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 #113) 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 #119) 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 +35 (label 10 at #170) 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 #146) branch_if_all_lanes_active branch_if_all_lanes_active +15 (label 30 at #159) 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 #152) 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 #158) 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 +30 (label 9 at #204) 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 #185) 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 #191) 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 #197) 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 +35 (label 8 at #243) 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 #220) 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 #226) 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 #231) branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 40 at #232) 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 +32 (label 7 at #279) 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 #259) 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 #265) 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 +26 (label 6 at #309) 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 #296) 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 #302) 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 +31 (label 5 at #344) 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 #326) branch_if_all_lanes_active branch_if_all_lanes_active +9 (label 55 at #333) 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 #332) 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 +23 (label 4 at #371) 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 #362) branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 60 at #363) 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 +22 (label 3 at #397) 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 #390) 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 +44 (label 2 at #445) 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 #430) copy_constant i = 0 store_loop_mask $18 = LoopMask jump jump +10 (label 73 at #422) 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 #428) 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 #413) 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 #438) 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 +45 (label 1 at #494) 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 #479) copy_constant i₁ = 0 store_loop_mask $5 = LoopMask jump jump +11 (label 81 at #471) 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 #461) 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 #487) 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