OSDN Git Service

PR target/36684
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index cfa4626..f518086 100644 (file)
-2008-06-30  Jakub Jelinek  <jakub@redhat.com>
+2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
 
-       PR c++/36662
-       * decl2.c (is_late_template_attribute): If the first attribute
-       argument is IDENTIFIER_NODE, don't consider it when checking
-       if arguments are value or type dependent.
+       PR target/36684
+       * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
+       for PIC.
+
+2008-07-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
+       build_gimple_modify_stmt.
+       (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
+       gimple operand.  Use fold_build* instead of build*.
+
+2008-07-04  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
+       (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
+       properly to compute the reachability set if we do field-sensitive PTA.
+       * invoke.texi (max-fields-for-field-sensitive): Document default.
+       * opts.c (decode_options): Set max-fields-for-field-sensitive to
+       100 for optimize >= 2.
+
+2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * ggc-zone.c (lookup_page_table_if_allocated,
+       set_page_table_entry, zone_find_object_size, alloc_small_page,
+       alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
+       new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
+       -Wc++-compat and/or -Wcast-qual warnings.
+
+2008-07-04  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/36634
+       * config/rs6000/rs6000.md (call, call_value): Don't arrange for
+       pic_offset_table_rtx to be marked as used here.
+       (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
+       TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
+       (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
+       (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
+       !TARGET_SECURE_PLT.
+
+2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * alloc-pool.c (hash_descriptor, eq_descriptor,
+       alloc_pool_descriptor): Fix -Wc++-compat warnings.
+       * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
+       Likewise.
+       * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
+       loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
+       final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
+       Likewise.
+       * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
+       Likewise.
+
+2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-flow.h (loop_only_exit_p): Declare.
+       * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
+       * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
+       the number of iterations if it is constant.  Otherwise, if this is the
+       only possible exit of the loop, use the conservative estimate on the
+       number of iterations of the entire loop if available.
+
+2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
+       * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
+       Add synchronization functions.
+       * config/sync.c: New file.
+       * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
+       (LIBGCC_SYNC_CFLAGS): Likewise.
+
+2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/36710
+       * config/i386/i386.md (mode): Add TF to "mode" attribute.
+       (*pushtf_sse): New insn pattern.
+       (pushtf splitters): New splitters.
+
+2008-07-03  Michael Meissner  <gnu@the-meissners.org>
+
+       PR middle-end/35736
+       * predict.c (build_predict_expr): Use void_type_node for the tree
+       type, instead of NULL_TREE.
+
+2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (contains_aligned_value_p): Return true
+       for TCmode.
+       (ix86_data_alignment): Align TCmode to 128bits.
+       (ix86_local_alignment): Likewise.
+
+2008-07-03  Andrew Haley  <aph@redhat.com>
+
+       PR bootstrap/33304
+       * vec.h (VEC_TA): New.
+       (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
+       DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
+       * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
+       (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
+       (C_COMMON_FIXED_TYPES): Remove first arg.
+       (C_COMMON_FIXED_MODE_TYPES): Likewise.
+       * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
+       MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
+       not to use empty macro arguments.
+
+2008-07-02  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/alpha/vms_tramp.asm, config/arm/crti.asm,
+       config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
+       config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
+       config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
+       config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
+       config/i386/sol2-gc1.asm, config/ia64/crti.asm,
+       config/ia64/crtn.asm, config/m68hc11/larith.asm,
+       config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
+       config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
+       config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
+       config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
+       config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
+       config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
+       config/rs6000/e500crtres64gpr.asm,
+       config/rs6000/e500crtres64gprctr.asm,
+       config/rs6000/e500crtrest32gpr.asm,
+       config/rs6000/e500crtrest64gpr.asm,
+       config/rs6000/e500crtresx32gpr.asm,
+       config/rs6000/e500crtresx64gpr.asm,
+       config/rs6000/e500crtsav32gpr.asm,
+       config/rs6000/e500crtsav64gpr.asm,
+       config/rs6000/e500crtsav64gprctr.asm,
+       config/rs6000/e500crtsavg32gpr.asm,
+       config/rs6000/e500crtsavg64gpr.asm,
+       config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
+       config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
+       config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
+       config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
+       config/sparc/sol2-cn.asm: Remove .file directives.
+
+2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * resource.c (mark_referenced_resources): Look inside
+       UNSPEC_VOLATILEs and ASM_INPUTs.
+
+2008-07-02  Ian Lance Taylor  <iant@google.com>
+
+       * rtlanal.c (add_reg_note): New function.
+       * rtl.h (add_reg_note): Declare.
+       * auto-inc-dec.c (attempt_change): Use add_reg_note.
+       * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
+       * builtins.c (expand_builtin_longjmp): Likewise.
+       (expand_builtin_nonlocal_goto): Likewise.
+       * calls.c (emit_call_1, expand_call): Likewise.
+       * cfgexpand.c (add_reg_br_prob_note): Likewise.
+       * cfglayout.c (fixup_reorder_chain): Likewise.
+       * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
+       (commit_one_edge_insertion): Likewise.
+       * combine.c (move_deaths, distribute_notes): Likewise.
+       * df-problems.c (df_set_note): Likewise.
+       * emit-rtl.c (link_cc0_insns, try_split): Likewise.
+       (set_unique_reg_note): Likewise.
+       (emit_copy_of_insn_after): Likewise.
+       * expr.c (expand_expr_real): Likewise.
+       * gcse.c (add_label_notes): Likewise.
+       * haifa-sched.c (create_check_block_twin): Likewise.
+       * jump.c (mark_jump_label_1): Likewise.
+       * loop-doloop.c (add_test, doloop_modify): Likewise.
+       * loop-unswitch.c (compare_and_jump_seq): Likewise.
+       * lower-subreg.c (move_eh_region_note): Likewise.
+       * optabs.c (emit_libcall_block): Likewise.
+       * predict.c (predict_insn): Likewise.
+       (combine_predictions_for_insn): Likewise.
+       * recog.c (peephole2_optimize): Likewise.
+       * regmove.c (try_auto_increment): Likewise.
+       * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
+       * reload.c (find_reloads): Likewise.
+       * reload1.c (fixup_eh_region_note): Likewise.
+       (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
+       * reorg.c (delete_prior_computation): Likewise.
+       (delete_computation, dbr_schedule): Likewise.
+       * config/pa/pa.c (legitimize_pic_address): Likewise.
+       * config/sh/sh.c (sh_reorg): Likewise.
+
+2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/36669
+       * config/libgcc-glibc.ver: Add %exclude.
+       * config/m32r/libgcc-glibc.ver: Likwise.
+       * config/s390/libgcc-glibc.ver: Likwise.
+       * config/sh/libgcc-glibc.ver: Likwise.
+       * config/sparc/libgcc-sparc-glibc.ver: Likwise.
+
+       * config/i386/libgcc-glibc.ver: New.
+
+       * config/i386/libgcc-x86_64-glibc.ver: Removed.
+
+2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
+       from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
+       i[34567]86-*-linux*, x86_64-*-linux*.  Add
+       i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
+       i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
+       x86_64-*-linux*.  Add i386/t-linux to tmake_file for
+       i[34567]86-*-linux*, x86_64-*-linux*.
+
+       * libgcc-std.ver: Add empty GCC_4.4.0.
+
+       * mkmap-symver.awk: Support multiple versions per symbol.
+
+       * config/i386/i386.c (ix86_init_builtins): Always define
+       __builtin_fabsq and __builtin_copysignq with fallbacks.
+       (ix86_expand_builtin): Emit normal call for __builtin_fabsq
+       and __builtin_copysignq if SSE2 isn't available.
+
+       * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
+       (LIBGCC2_TF_CEXT): Likwise.
+       (TF_SIZE): Likwise.
+
+       * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
+
+       * config/i386/sfp-machine.h: Moved to libgcc.
+
+       * config/i386/sfp-machine.h: New.
+       * config/i386/t-linux: Likwise.
+
+       * config/i386/t-darwin: Remove softfp_wrap_start and
+       softfp_wrap_end.
+       * config/i386/t-darwin64: Likewise.
+
+       * config/i386/t-fprules-softfp64: Renamed to ...
+       * config/i386/t-fprules-softfp: This.
+
+       * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
+       and softfp_wrap_end.
+
+2008-07-02  Jason Merrill  <jason@redhat.com>
+
+       * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
+
+       * tree.c (ctor_to_list): New fn.
+       * tree.h: Declare it.
+       (CONSTRUCTOR_ELT): New macro.
+       (CONSTRUCTOR_NELTS): New macro.
+
+2008-07-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (struct variable_info): Reorder
+       to fill padding on 64bit hosts.  Make collapsed_to an int.
+       (get_varinfo_fc): Deal with that.
+       (new_var_info): Likewise.
+       (collapse_rest_of_var): Likewise.
+
+2008-07-02  Joshua Sumali  <jsumali@redhat.com>
+
+       * doc/install.texi (--enable-java-home): Document.
+       (--enable-aot-compile-rpm): Likewise.
+       (--with-arch-directory): Likewise.
+       (--with-os-directory): Likewise.
+       (--with-origin-name): Likewise.
+       (--with-arch-suffix): Likewise.
+       (--with-jvm-root-dir): Likewise.
+       (--with-jvm-jar-dir): Likewise.
+       (--with-python-dir): Likewise.
+
+2008-07-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
+       from decls explicitly.  Merge operand checking from tuples.
+
+2008-07-02  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-switch-conversion.c: Included timevar.h which I forgot before.
+       
+2008-07-02  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-switch-conversion.c: Included timevar.h
+       (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
+
+       * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
+
+2008-07-02  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-switch-conversion.c: Corrected various comments and
+       whitespace issues
+       (build_constructors): Fixed minor formatting mistakes.
+
+       * invoke.texi (Optimize Options): Corrected the
+       switch-conversion-max-branch-ratio parameter.
+
+2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * final.c (asm_insn_count): Return zero for an empty asm body.
+
+2008-07-02  Richard Guenther  <rguenther@suse.de>
+
+       * bitmap.h (bitmap_set_bit): Return bool.
+       (bitmap_clear_bit): Likewise.
+       * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
+       write to the bitmap if it would.
+       (bitmap_clear_bit): Likewise.
+       * tree-ssa-structalias.c (add_implicit_graph_edge): Use
+       bitmap_set_bit return value.
+       (add_pred_graph_edge): Likewise.
+       (add_graph_edge): Likewise.
+       (do_sd_constraint): Likewise.
+       (do_ds_constraint): Likewise.
+
+2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
+       Fix -Wc++-compat and/or -Wcast-qual warnings.
+       * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
+       gen_regparm_prefix): Likewise.
+       * vmsdbgout.c (write_modbeg, lookup_filename,
+       vmsdbgout_source_line, vmsdbgout_init): Likewise.
+
+2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
+       defaults.h definition apply.
+
+2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * function.c (assign_parm_remove_parallels): New.
+       (assign_parm_setup_block_p): Do not return true for non-BLKmode
+       PARALLELs.
+       (assign_parm_setup_block): Do not handle them.
+       (assign_parm_setup_reg, assign_parm_setup_stack): Call
+       assign_parm_remove_parallels.
+
+2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * c-typeck.c (convert_for_assignment): Use
+       vector_targets_convertible_p.
+       * c-common.c (vector_targets_convertible_p): New.
+       * c-common.h (vector_targets_convertible_p): New prototype.
+       * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
+       opaque_p_V2SI_type_node.
+
+2008-07-01  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
+       RFmode constants.
+
+2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
+       TFmode constants via two element DImode vector for hosts with
+       HOST_BITS_PER_WIDE_INT < 64.
+       (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
+       also for HOST_BITS_PER_WIDE_INT < 64.
+
+2008-07-01  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/36666
+       * tree-ssa-structalias.c (get_constraint_for_1): Declare.
+       (get_constraint_exp_from_ssa_var): Split into ...
+       (get_constraint_exp_for_temp): ... this ...
+       (get_constraint_for_ssa_var): ... and that.
+       Return constraint expressions for all touched sub-fields
+       if the results address is not taken.
+       (process_constraint): Remove assertion that aggregate
+       assignments do not happen at this place.
+       (get_constraint_for_component_ref): Add address_p argument.
+       Return constraint expressions for all touched sub-fields
+       if the results address is not taken.
+       (do_deref): Use get_constraint_exp_for_temp.
+       (get_constraint_for_1): Rename from ...
+       (get_constraint_for): ... this.  Add the old function as wrapper.
+       (do_structure_copy): Use get_constraint_for_1.
+
+2008-07-01  Martin Jambor  <mjambor@suse.cz>
+
+       * Makefile.in (tree-switch-conversion.o): Add.
+       (OBJS-common): Add tree-swtch-conversion.o.
+       * passes.c (init_optimization_passes): Add pass_convert_switch.
+       * tree-pass.h: (pass_convert_switch): Add.
+       * tree-switch-conversion.c: New file.
+       * gcc.dg/tree-ssa/cswtch.c: New testcase.
+       * common.opt (ftree-cswtch): New option.
+       * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
+       * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
+       * opts.c (decode_options): Set flag_tree_switch_conversion when
+       optimization level is >= 2.
+       * doc/invoke.texi (Optimize Options): Added description of
+       -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
+
+2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * config/darwin-driver.c (darwin_default_min_version): Fix
+       -Wc++-compat warnings.
+
+2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
+       of operand 0.
 
 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
 
-       * ifcvt.c (cond_move_process_if_block): Free vectors on false
-       return.
+       * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
        
 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
 
-       * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New
-       macros.
-               (df_scan_free_internal): Free data structures not
+       PR rtl-optimization/34744
+       * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
+       (df_scan_free_internal): Free data structures not
        allocated in storage pools.
        (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
-       (df_refs_add_to_chains): Use df_scan_free_ref_vec and 
+       (df_refs_add_to_chains): Use df_scan_free_ref_vec and
        df_scan_free_mws_vec.
        * dse.c (dse_step6): Free offset_map_p and offset_map_n
        unconditionally.
 
        * config/i386/i386.c (contains_aligned_value_p): Return true
        for __float128.
-       (ix86_function_arg_boundary): Return its natural boundary for
+       (ix86_function_arg_boundary): Return its natural boundary
        for __float128.
        (return_in_memory_32): Don't check TDmode.
        (ix86_split_to_parts): Support splitting into 4 parts and
        (ix86_split_long_move): Support splitting into 4 parts.
        (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
        for SSE2.
-       (ix86_init_mmx_sse_builtins): Move __float80 and __float128
-       to ...
+       (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
        (ix86_init_builtins): Here.
        (ix86_scalar_mode_supported_p): Always return true for TFmode.
        (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
            H.J. Lu  <hongjiu.lu@intel.com>
 
        * global.c (compute_regsets): Set frame_pointer_needed here.
-
-       * reload1.c (init_elim_table): Don't set frame_pointer_needed
-       here.
+       * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
 
 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
 
        * doc/rtl.texi (const_vector): Document const_fixed as legitimate
        element type of const_vector.
 
-2008-06-28 Uros Bizjak  <ubizjak@gmail.com>
+2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
        Remove FLAGS_REG clobber from expander pattern.
        (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
        for the same function twice.
 
-2008-06-27 Uros Bizjak  <ubizjak@gmail.com>
+2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
        ix86_expand_binary_operator directly.
        have_similar_memory_accesses_1, ref_base_address_1): Likewise.
        * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
 
-2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
+2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/36627
        * config/i386/i386.md : Change constraints of HImode and QImode
        * config/vax/vaxv.h: Remove.
        * config/windiss.h: Remove.
 
-2008-06-06 Uros Bizjak <ubizjak@gmail.com>
+2008-06-06  Uros Bizjak <ubizjak@gmail.com>
 
        PR rtl-optimization/36438
        * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early