303 instructions store_src_rg coords = src.rg init_lane_masks CondMask = LoopMask = RetMask = true store_condition_mask $12 = CondMask store_condition_mask $20 = CondMask store_condition_mask $28 = CondMask store_condition_mask $36 = CondMask store_condition_mask $42 = CondMask store_condition_mask $49 = CondMask store_condition_mask $56 = CondMask store_condition_mask $60 = CondMask store_condition_mask $64 = CondMask store_condition_mask $69 = CondMask store_condition_mask $74 = CondMask branch_if_no_lanes_active branch_if_no_lanes_active +20 (label 12 at #34) store_return_mask $75 = RetMask store_loop_mask $76 = LoopMask jump jump +5 (label 14 at #22) label label 0x0000000F copy_constant $77 = 0 copy_slot_masked [inside_while_loop].result = Mask($77) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000000E copy_uniform $77 = unknownInput cmpeq_imm_float $77 = equal($77, 0x42F60000 (123.0)) merge_loop_mask LoopMask &= $77 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -9 (label 15 at #18) label label 0x0000000D load_loop_mask LoopMask = $76 copy_constant $76 = 0xFFFFFFFF copy_slot_masked [inside_while_loop].result = Mask($76) load_return_mask RetMask = $75 copy_slot_unmasked $75 = [inside_while_loop].result label label 0x0000000C copy_constant $70 = 0 merge_condition_mask CondMask = $74 & $75 branch_if_no_lanes_active branch_if_no_lanes_active +17 (label 11 at #54) store_return_mask $71 = RetMask store_loop_mask $72 = LoopMask label label 0x00000012 copy_constant $73 = 0xFFFFFFFF copy_slot_masked [inside_infinite_do_loop].result = Mask($73) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) copy_constant $73 = 0xFFFFFFFF merge_loop_mask LoopMask &= $73 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -7 (label 18 at #40) label label 0x00000011 load_loop_mask LoopMask = $72 load_return_mask RetMask = $71 copy_slot_unmasked $71 = [inside_infinite_do_loop].result label label 0x00000010 copy_slot_masked $70 = Mask($71) label label 0x0000000B load_condition_mask CondMask = $74 copy_constant $65 = 0 merge_condition_mask CondMask = $69 & $70 branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 10 at #77) store_return_mask $66 = RetMask store_loop_mask $67 = LoopMask jump jump +5 (label 21 at #66) label label 0x00000016 copy_constant $68 = 0xFFFFFFFF copy_slot_masked [inside_infinite_while_loop].result = Mask($68) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000015 copy_constant $68 = 0xFFFFFFFF merge_loop_mask LoopMask &= $68 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -8 (label 22 at #62) label label 0x00000014 load_loop_mask LoopMask = $67 load_return_mask RetMask = $66 copy_slot_unmasked $66 = [inside_infinite_while_loop].result label label 0x00000013 copy_slot_masked $65 = Mask($66) label label 0x0000000A load_condition_mask CondMask = $69 copy_constant $61 = 0 merge_condition_mask CondMask = $64 & $65 branch_if_no_lanes_active branch_if_no_lanes_active +14 (label 9 at #95) store_loop_mask $62 = LoopMask label label 0x00000019 branch_if_all_lanes_active branch_if_all_lanes_active +6 (label 24 at #90) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) copy_constant $63 = 0xFFFFFFFF merge_loop_mask LoopMask &= $63 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -6 (label 25 at #83) label label 0x00000018 load_loop_mask LoopMask = $62 copy_constant $62 = 0xFFFFFFFF label label 0x00000017 copy_slot_masked $61 = Mask($62) label label 0x00000009 load_condition_mask CondMask = $64 copy_constant $57 = 0 merge_condition_mask CondMask = $60 & $61 branch_if_no_lanes_active branch_if_no_lanes_active +16 (label 8 at #115) store_loop_mask $58 = LoopMask jump jump +4 (label 28 at #105) label label 0x0000001D branch_if_all_lanes_active branch_if_all_lanes_active +7 (label 27 at #110) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000001C copy_constant $59 = 0xFFFFFFFF merge_loop_mask LoopMask &= $59 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -7 (label 29 at #102) label label 0x0000001B load_loop_mask LoopMask = $58 copy_constant $58 = 0xFFFFFFFF label label 0x0000001A copy_slot_masked $57 = Mask($58) label label 0x00000008 load_condition_mask CondMask = $60 copy_constant $50 = 0 merge_condition_mask CondMask = $56 & $57 branch_if_no_lanes_active branch_if_no_lanes_active +31 (label 7 at #150) store_return_mask $51 = RetMask store_loop_mask $52 = LoopMask copy_uniform $53 = unknownInput cast_to_int_from_float $53 = FloatToInt($53) store_loop_mask $54 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($53 == 0x00000001) { LoopMask = true; $54 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 32 at #131) copy_constant $55 = 0xFFFFFFFF copy_slot_masked [switch_with_all_returns].result = Mask($55) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000020 case_op if ($53 == 0x00000002) { LoopMask = true; $54 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 33 at #137) copy_constant $55 = 0 copy_slot_masked [switch_with_all_returns].result = Mask($55) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000021 reenable_loop_mask LoopMask |= $54 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 34 at #143) copy_constant $54 = 0 copy_slot_masked [switch_with_all_returns].result = Mask($54) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000022 label label 0x0000001F load_loop_mask LoopMask = $52 load_return_mask RetMask = $51 copy_slot_unmasked $51 = [switch_with_all_returns].result label label 0x0000001E copy_slot_masked $50 = Mask($51) label label 0x00000007 load_condition_mask CondMask = $56 copy_constant $43 = 0 merge_condition_mask CondMask = $49 & $50 branch_if_no_lanes_active branch_if_no_lanes_active +27 (label 6 at #181) store_return_mask $44 = RetMask store_loop_mask $45 = LoopMask copy_uniform $46 = unknownInput cast_to_int_from_float $46 = FloatToInt($46) store_loop_mask $47 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($46 == 0x00000001) { LoopMask = true; $47 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 37 at #166) copy_constant $48 = 0xFFFFFFFF copy_slot_masked [switch_fallthrough].result = Mask($48) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000025 case_op if ($46 == 0x00000002) { LoopMask = true; $47 = false; } label label 0x00000026 reenable_loop_mask LoopMask |= $47 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 39 at #174) copy_constant $47 = 0 copy_slot_masked [switch_fallthrough].result = Mask($47) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000027 label label 0x00000024 load_loop_mask LoopMask = $45 load_return_mask RetMask = $44 copy_slot_unmasked $44 = [switch_fallthrough].result label label 0x00000023 copy_slot_masked $43 = Mask($44) label label 0x00000006 load_condition_mask CondMask = $49 copy_constant $37 = 0 merge_condition_mask CondMask = $42 & $43 branch_if_no_lanes_active branch_if_no_lanes_active +23 (label 5 at #208) store_return_mask $38 = RetMask store_loop_mask $39 = LoopMask copy_uniform $40 = unknownInput cast_to_int_from_float $40 = FloatToInt($40) store_loop_mask $41 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($40 == 0x00000001) { LoopMask = true; $41 = false; } label label 0x0000002A case_op if ($40 == 0x00000002) { LoopMask = true; $41 = false; } label label 0x0000002B reenable_loop_mask LoopMask |= $41 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 44 at #201) copy_constant $41 = 0xFFFFFFFF copy_slot_masked [switch_fallthrough_twice].result = Mask($41) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000002C label label 0x00000029 load_loop_mask LoopMask = $39 load_return_mask RetMask = $38 copy_slot_unmasked $38 = [switch_fallthrough_twice].result label label 0x00000028 copy_slot_masked $37 = Mask($38) label label 0x00000005 load_condition_mask CondMask = $42 copy_constant $29 = 0 merge_condition_mask CondMask = $36 & $37 branch_if_no_lanes_active branch_if_no_lanes_active +39 (label 4 at #251) store_return_mask $30 = RetMask store_loop_mask $31 = LoopMask copy_uniform $32 = unknownInput cast_to_int_from_float $32 = FloatToInt($32) store_loop_mask $33 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($32 == 0x00000001) { LoopMask = true; $33 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +18 (label 47 at #238) copy_constant x = 0 store_loop_mask $34 = LoopMask jump jump +7 (label 49 at #230) label label 0x00000032 branch_if_all_lanes_active branch_if_all_lanes_active +11 (label 48 at #236) mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) copy_slot_unmasked $35 = x add_imm_int $35 += 0x00000001 copy_slot_masked x = Mask($35) label label 0x00000031 copy_slot_unmasked $35 = x cmple_imm_int $35 = lessThanEqual($35, 0x0000000A) merge_loop_mask LoopMask &= $35 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -11 (label 50 at #224) label label 0x00000030 load_loop_mask LoopMask = $34 label label 0x0000002F reenable_loop_mask LoopMask |= $33 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 51 at #244) copy_constant $33 = 0xFFFFFFFF copy_slot_masked [switch_with_break_in_loop].result = Mask($33) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000033 label label 0x0000002E load_loop_mask LoopMask = $31 load_return_mask RetMask = $30 copy_slot_unmasked $30 = [switch_with_break_in_loop].result label label 0x0000002D copy_slot_masked $29 = Mask($30) label label 0x00000004 load_condition_mask CondMask = $36 copy_constant $21 = 0 merge_condition_mask CondMask = $28 & $29 branch_if_no_lanes_active branch_if_no_lanes_active +40 (label 3 at #295) store_return_mask $22 = RetMask store_loop_mask $23 = LoopMask copy_uniform $24 = unknownInput cast_to_int_from_float $24 = FloatToInt($24) store_loop_mask $25 = LoopMask mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) case_op if ($24 == 0x00000001) { LoopMask = true; $25 = false; } branch_if_no_lanes_active branch_if_no_lanes_active +19 (label 54 at #282) copy_constant x₁ = 0 store_loop_mask $26 = LoopMask jump jump +8 (label 56 at #274) label label 0x00000039 copy_constant $36 = 0 continue_op $36 |= Mask(0xFFFFFFFF); LoopMask &= ~(CondMask & LoopMask & RetMask) reenable_loop_mask LoopMask |= $36 copy_slot_unmasked $27 = x₁ add_imm_int $27 += 0x00000001 copy_slot_masked x₁ = Mask($27) label label 0x00000038 copy_slot_unmasked $27 = x₁ cmple_imm_int $27 = lessThanEqual($27, 0x0000000A) merge_loop_mask LoopMask &= $27 stack_rewind branch_if_any_lanes_active branch_if_any_lanes_active -12 (label 57 at #267) label label 0x00000037 load_loop_mask LoopMask = $26 label label 0x00000036 reenable_loop_mask LoopMask |= $25 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 58 at #288) copy_constant $25 = 0xFFFFFFFF copy_slot_masked [switch_with_continue_in_loop].result = Mask($25) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000003A label label 0x00000035 load_loop_mask LoopMask = $23 load_return_mask RetMask = $22 copy_slot_unmasked $22 = [switch_with_continue_in_loop].result label label 0x00000034 copy_slot_masked $21 = Mask($22) label label 0x00000003 load_condition_mask CondMask = $28 copy_constant $13 = 0 merge_condition_mask CondMask = $20 & $21 branch_if_no_lanes_active branch_if_no_lanes_active +34 (label 2 at #333) store_return_mask $14 = RetMask store_loop_mask $15 = LoopMask copy_uniform $16 = unknownInput cast_to_int_from_float $16 = FloatToInt($16) 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 +13 (label 61 at #320) copy_uniform $18 = unknownInput cmpeq_imm_float $18 = equal($18, 0x42F60000 (123.0)) branch_if_no_active_lanes_eq branch +5 (label 62 at #315) if no lanes of $18 == 0xFFFFFFFF copy_constant $19 = 0 copy_slot_masked [switch_with_if_that_returns].result = Mask($19) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) jump jump +5 (label 63 at #319) label label 0x0000003E copy_constant $19 = 0xFFFFFFFF copy_slot_masked [switch_with_if_that_returns].result = Mask($19) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x0000003F label label 0x0000003D reenable_loop_mask LoopMask |= $17 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 64 at #326) copy_constant $17 = 0xFFFFFFFF copy_slot_masked [switch_with_if_that_returns].result = Mask($17) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000040 label label 0x0000003C load_loop_mask LoopMask = $15 load_return_mask RetMask = $14 copy_slot_unmasked $14 = [switch_with_if_that_returns].result label label 0x0000003B 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 +29 (label 1 at #366) store_return_mask $1 = RetMask store_loop_mask $2 = LoopMask copy_uniform $3 = unknownInput cast_to_int_from_float $3 = FloatToInt($3) 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 +8 (label 67 at #353) copy_uniform $5 = unknownInput cmpeq_imm_float $5 = equal($5, 0x42F60000 (123.0)) branch_if_no_active_lanes_eq branch +4 (label 68 at #352) if no lanes of $5 == 0xFFFFFFFF copy_constant $6 = 0 copy_slot_masked [switch_with_one_sided_if_then_fallthrough].result = Mask($6) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000044 label label 0x00000043 reenable_loop_mask LoopMask |= $4 branch_if_no_lanes_active branch_if_no_lanes_active +4 (label 70 at #359) copy_constant $4 = 0xFFFFFFFF copy_slot_masked [switch_with_one_sided_if_then_fallthrough].result = Mask($4) mask_off_return_mask RetMask &= ~(CondMask & LoopMask & RetMask) label label 0x00000046 label label 0x00000042 load_loop_mask LoopMask = $2 load_return_mask RetMask = $1 copy_slot_unmasked $1 = [switch_with_one_sided_if_then_fallthrough].result label label 0x00000041 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