161 instructions 2 3store_src_rg coords = src.rg 4init_lane_masks CondMask = LoopMask = RetMask = true 5copy_uniform $0 = colorGreen(1) 6cast_to_int_from_float $0 = FloatToInt($0) 7copy_slot_unmasked x = $0 8copy_constant _0_ok = 0 9store_loop_mask $0 = LoopMask 10copy_slot_unmasked $1 = x 11store_loop_mask $2 = LoopMask 12mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 13case_op if ($1 == 0x00000002) { LoopMask = true; $2 = false; } 14branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 1 at #15) 15branch_if_all_lanes_active branch_if_all_lanes_active +17 (label 0 at #30) 16mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 17label label 0x00000001 18case_op if ($1 == 0x00000001) { LoopMask = true; $2 = false; } 19label label 0x00000002 20case_op if ($1 == 0) { LoopMask = true; $2 = false; } 21branch_if_no_lanes_active branch_if_no_lanes_active +5 (label 3 at #24) 22copy_constant $3 = 0xFFFFFFFF 23copy_slot_masked _0_ok = Mask($3) 24branch_if_all_lanes_active branch_if_all_lanes_active +8 (label 0 at #30) 25mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 26label label 0x00000003 27reenable_loop_mask LoopMask |= $2 28branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 4 at #29) 29branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 0 at #30) 30mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 31label label 0x00000004 32label label 0 33load_loop_mask LoopMask = $0 34store_condition_mask $12 = CondMask 35copy_slot_unmasked $13 = _0_ok 36copy_constant $0 = 0 37merge_condition_mask CondMask = $12 & $13 38branch_if_no_lanes_active branch_if_no_lanes_active +32 (label 6 at #68) 39copy_constant ok = 0 40store_loop_mask $1 = LoopMask 41copy_slot_unmasked $2 = x 42store_loop_mask $3 = LoopMask 43mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 44case_op if ($2 == 0) { LoopMask = true; $3 = false; } 45branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 9 at #46) 46branch_if_all_lanes_active branch_if_all_lanes_active +19 (label 8 at #63) 47mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 48label label 0x00000009 49case_op if ($2 == 0x00000001) { LoopMask = true; $3 = false; } 50label label 0x0000000A 51case_op if ($2 == 0x00000002) { LoopMask = true; $3 = false; } 52label label 0x0000000B 53case_op if ($2 == 0x00000003) { LoopMask = true; $3 = false; } 54branch_if_no_lanes_active branch_if_no_lanes_active +5 (label 12 at #57) 55copy_constant $4 = 0xFFFFFFFF 56copy_slot_masked ok = Mask($4) 57branch_if_all_lanes_active branch_if_all_lanes_active +8 (label 8 at #63) 58mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 59label label 0x0000000C 60reenable_loop_mask LoopMask |= $3 61branch_if_no_lanes_active branch_if_no_lanes_active +3 (label 13 at #62) 62branch_if_all_lanes_active branch_if_all_lanes_active +3 (label 8 at #63) 63mask_off_loop_mask LoopMask &= ~(CondMask & LoopMask & RetMask) 64label label 0x0000000D 65label label 0x00000008 66load_loop_mask LoopMask = $1 67copy_slot_unmasked $1 = ok 68label label 0x00000007 69copy_slot_masked $0 = Mask($1) 70label label 0x00000006 71load_condition_mask CondMask = $12 72swizzle_4 $0..3 = ($0..3).xxxx 73copy_4_uniforms $4..7 = colorRed 74copy_4_uniforms $8..11 = colorGreen 75mix_4_ints $0..3 = mix($4..7, $8..11, $0..3) 76load_src src.rgba = $0..3 77