Jan Hubicka [Sun, 31 Aug 2008 11:18:41 +0000 (13:18 +0200)]
sparc.h (BRANCH_COST): Fix macro definition.
* sparc.h (BRANCH_COST): Fix macro definition.
* avr.c (avr_operand_rtx_cost): Add speed argument.
(avr_rtx_costs): Update calls of avr_operand_rtx_cost.
From-SVN: r139824
Richard Guenther [Sun, 31 Aug 2008 11:06:10 +0000 (11:06 +0000)]
tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched types instead of operands.
2008-08-31 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
types instead of operands. Re-instantiate verifying of
binary expression operands.
From-SVN: r139823
Daniel Kraft [Sun, 31 Aug 2008 10:00:30 +0000 (12:00 +0200)]
gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
2008-08-31 Daniel Kraft <d@domob.eu>
* gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
(struct gfc_tbp_generic): New type.
(struct gfc_typebound_proc): Removed `target' and added union with
`specific' and `generic' members; new members `overridden',
`subroutine', `function' and `is_generic'.
(struct gfc_expr): New members `derived' and `name' in compcall union
member and changed type of `tbp' to gfc_typebound_proc.
(gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
* match.h (gfc_typebound_default_access): New global.
(gfc_match_generic): New method.
* decl.c (gfc_match_generic): New method.
(match_binding_attributes): New argument `generic' and handle it.
(match_procedure_in_type): Mark matched binding as non-generic.
* interface.c (gfc_compare_interfaces): Made public.
(gfc_compare_actual_formal): Ditto.
(check_interface_1), (compare_parameter): Use new public names.
(gfc_procedure_use), (gfc_search_interface): Ditto.
* match.c (match_typebound_call): Set base-symbol referenced.
* module.c (binding_generic): New global array.
(current_f2k_derived): New global.
(mio_typebound_proc): Handle IO of GENERIC bindings.
(mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
* parse.c (decode_statement): Handle GENERIC statement.
(gfc_ascii_statement): Ditto.
(typebound_default_access), (set_typebound_default_access): Removed.
(gfc_typebound_default_access): New global.
(parse_derived_contains): New default-access implementation and handle
GENERIC statements encountered.
* primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
structure and removed check for SUBROUTINE/FUNCTION from here.
* resolve.c (extract_compcall_passed_object): New method.
(update_compcall_arglist): Use it.
(resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
(resolve_typebound_generic_call): New method.
(resolve_typebound_call): Check target is a SUBROUTINE and handle calls
to GENERIC bindings.
(resolve_compcall): Ditto (check for target being FUNCTION).
(check_typebound_override): Handle GENERIC bindings.
(check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
(resolve_typebound_procedure): Handle GENERIC bindings and set new
attributes subroutine, function and overridden in gfc_typebound_proc.
(resolve_fl_derived): Ensure extended type is resolved before the
extending one is.
* st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
* symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
2008-08-31 Daniel Kraft <d@domob.eu>
* gfortran.dg/typebound_generic_1.f03: New test.
* gfortran.dg/typebound_generic_2.f03: New test.
* gfortran.dg/typebound_generic_3.f03: New test.
From-SVN: r139822
Jan Hubicka [Sun, 31 Aug 2008 09:44:25 +0000 (11:44 +0200)]
fwprop.c (should_replace_address): Add speed attribute.
* fwprop.c (should_replace_address): Add speed attribute.
(PR_OPTIMIZE_FOR_SPEED): New flag.
(propagate_rtx_1): Use it.
(propagate_rtx): Set it.
(try_fwprop_subst): Update call of rtx_costs.
(forward_propagate_and_simplify): LIkewise.
* hooks.c (hook_int_rtx_bool_0): New
(hook_bool_rtx_int_int_intp_false): Replace by ...
(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
* hooks.h (hook_int_rtx_bool_0): New
(hook_bool_rtx_int_int_intp_false): Replace by ...
(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
* optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
(prepare_cmp_insn): UPdate call of rtx_cost.
* postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
(reload_cse_simplify_operands): Update call of rtx_cost.
(reload_cse_move2add): call of rtx_cost.
* target.h (struct gcc_target): Update rtx_costs and address_costs.
* rtlanal.c (rtx_cost): Add speed argument.
(address_cost): Add speed argument
(default_address_cost): Likewise.
(insn_rtx_cost): Likewise.
* cfgloopanal.c (seq_cost): Add speed argument.
(target_reg_cost, target_spill_cost): Turn to array.
(init_set_costs): Update for speed.
(estimate_reg_pressure_cost): Add speed argument.
* auto-inc-dec.c (attempt_change): Update call of rtx_cost.
* dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
* tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
(seq_cost): Add speed argument.
(computation_cost): Add speed arugment.
(add_cost, multiply_by_const, get_address_cost): add speed argument.
(force_expr_to_var_cost): Update for profile info.
(force_var_cost): Likewise.
(split_address_cost): Likewise.
(ptr_difference_cost): Likewise.
(difference_cost): Likewise.
(get_computation_cost_at): Likewise.
(determine_iv_cost): Likewise.
(ivopts_global_cost_for_size): Likewise.
(rewrite_use_address): Likewise.
(tree_ssa_iv_optimize_loop): Initialize speed field.
* cse.c (optimize_this_for_speed_p): New static var.
(notreg_cost): Update call of rtx_cost.
(cse_extended_basic_block): set optimize_this_for_speed_p.
* ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
(noce_try_cmove_arith): Likewise.
(noce_try_sign_mask): LIkewise.
* expr.c (compress_float_constant): Update rtx_cost calls.
* tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
(addr_to_parts): Likewise.
(create_mem_ref): Likewise.
* dse.c (find_shift_sequence): Add speed argument.
(replace_read): Update call.
* calls.c (precompute_register_parameters): Update call of rtx_cost.
* expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
* neg_cost, shift_cost, shiftadd_cost,
shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
mul_highpart_cost): Increase dimension.
(init_expmed): Initialize for both size and speed.
(expand_shift): Use profile.
(synth_mult): Use profile.
(choose_mult_variant): Use profile.
(expand_mult): Use profile.
(expand_mult_highpart_optab): Use profile.
(expand_mult_highpart): Use profile.
(expand_smod_pow2): Use profile.
(expand_divmod): Use profile.
* simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
* loop-invariant.c (create_new_invariant): Use profile.
(gain_for_invariant): Add speed parameter.
(best_gain_for_invariant): Likewise.
(find_invariants_to_move): Likewise.
(move_single_loop_invariants): Set it.
* target-def.h (TARGET_RTX_COSTS): Use hook.
* rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
(optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
* output.h (default_address_cost): Update prototype.
* combine.c (optimize_this_for_speed_p): New static var.
(combine_validate_cost): Update call of rtx_cost.
(combine_instructions): Set optimize_this_for_speed_p.
(expand_compound_operation): Update call of rtx_cost.
(make_extraction):Update call of rtx_cost.
(force_to_mode):Update call of rtx_cost.
(distribute_and_simplify_rtx):Update call of rtx_cost.
* cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
(estimate_reg_pressure_cost): Update prototype.
* tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
* basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
Remove.
* config/alpha/alpha.c (alpha_rtx_costs): Update.
(alpha_rtx_costs): Update.
* config/frv/frv.c (frv_rtx_costs): Update.
* config/s390/s390.c (s390_rtx_costs): Update.
* config/m32c/m32c.c (m32c_memory_move_cost): Update.
(m32c_rtx_costs): Update.
* config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
(spu_rtx_costs): Update.
* config/sparc/sparc.c (sparc_rtx_costs): Update.
* config/m32r/m32r.c (m32r_rtx_costs): Update.
* config/i386/i386.c (:ix86_address_cost): Update.
(ix86_rtx_costs): Update.
* config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
* config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
* config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
* config/crx/crx.c (crx_address_cost): Update.
* config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
* config/stormy16/stormy16.c
(xstormy16_address_cost, xstormy16_rtx_costs): Update.
* config/m68hc11/m68hc11.c
(m68hc11_address_cost, m68hc11_rtx_costs): Update.
* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
* config/ia64/ia64.c (ia64_rtx_costs): Update.
* config/m68k/m68k.c (m68k_rtx_costs): Update.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
* config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
* config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
(mcore_rtx_costs): update.
* config/score/score3.c (score3_rtx_costs): Update.
* config/score/score7.c (score7_rtx_costs): Update.
* config/score/score3.h (score3_rtx_costs):Update.
* config/score/score7.h (score7_rtx_costs): Update.
* config/score/score.c (score_rtx_costs): Update.
* config/arm/arm.c (arm_address_cost): Update.
(arm_rtx_costs_1): Update.
(arm_rtx_costs_1): Update.
(arm_size_rtx_costs): Update.
(arm_size_rtx_costs): Update.
(arm_size_rtx_costs): Update.
(arm_xscale_rtx_costs): Update.
(arm_thumb_address_cost): Update.
* config/pa/pa.c (hppa_address_cost): Update.
* config/mips/mips.c (mips_rtx_costs): Update.
* config/vax/vax.c (vax_address_cost): Update.
* config/h8300/h8300.c (h8300_shift_costs): Update.
(h8300_rtx_costs): Update.
* config/v850/v850.c (TARGET_ADDRESS_COST): Update.
(v850_rtx_costs): Update.
* config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
* config/bfin/bfin.c
(bfin_address_cost): Update.
(bfin_rtx_costs): Update.
* stmt.c (lshift_cheap_p): Update.
From-SVN: r139821
Andrew Pinski [Sun, 31 Aug 2008 02:40:13 +0000 (02:40 +0000)]
#define vector __attribute__((vector_size(16) )) struct struct1 { union { float a[3]...
#define vector __attribute__((vector_size(16) ))
struct struct1 {
union { float a[3]; } vmx;
struct struct2 {
struct2(const struct2& r) {}
} w;
} __attribute__((aligned(16)));
struct struct3 {
vector float vmx;
operator const struct1& () const{
return *reinterpret_cast<const struct1*>(this);
}
};
struct3 func3( struct3 V1);
struct3 func2( void );
void func1( ) {
struct1 vVec = func2() ;
func3 ( (struct3&)vVec );
}
From-SVN: r139820
GCC Administrator [Sun, 31 Aug 2008 00:16:42 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r139817
Jerry DeLisle [Sun, 31 Aug 2008 00:07:58 +0000 (00:07 +0000)]
re PR fortran/36895 (Namelist writting to internal files: Control characters wrong?)
2008-08-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/36895
* gfortran.dg/namelist_53.f90: New test.
From-SVN: r139814
Jerry DeLisle [Sun, 31 Aug 2008 00:04:33 +0000 (00:04 +0000)]
re PR fortran/36895 (Namelist writting to internal files: Control characters wrong?)
2008-08-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/36895
* io/write.c (namelist_write_newline): New function to correctly mark
next records in both external and internal units.
(nml_write_obj): Use new function.
(namelist_write: Use new function.
From-SVN: r139813
Michael Meissner [Sat, 30 Aug 2008 23:50:40 +0000 (23:50 +0000)]
Change attribute((option(...))) to attribute((target(...))); Do not allocate tree nodes on x86 for builtins until we generate code for the ISA; Delete hot/cold functions changing optimization; Make C++ support target specific functions; Add #pragma GCC {push_options,pop_options,reset_options} instead of #pragma GCC {target,optimize} {push,reset,pop}
From-SVN: r139812
Jason Merrill [Sat, 30 Aug 2008 23:12:45 +0000 (19:12 -0400)]
re PR c++/37288 (ICE using auto as function return type or parameter)
PR c++/37288
* pt.c (dependent_type_p): Don't abort on auto outside of a template.
From-SVN: r139811
Michael Meissner [Sat, 30 Aug 2008 22:57:54 +0000 (22:57 +0000)]
Include basic-block.h in dojump.c to declare optimize_insn_for_speed.
From-SVN: r139810
Kaz Kojima [Sat, 30 Aug 2008 22:23:20 +0000 (22:23 +0000)]
re PR target/37270 (SH: spill failure for R0_REGS)
PR target/37270
* config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
the reload address with the index register for SFmode
access with a displacement.
From-SVN: r139809
Joseph Myers [Sat, 30 Aug 2008 22:21:56 +0000 (23:21 +0100)]
* fi.po: New.
From-SVN: r139807
Gerald Pfeifer [Sat, 30 Aug 2008 22:18:00 +0000 (22:18 +0000)]
* MAINTAINERS: Consistently use tabs to separate columns.
From-SVN: r139806
Mark Mitchell [Sat, 30 Aug 2008 17:31:22 +0000 (17:31 +0000)]
2.cc: Constrain iterations when testing on a simultor.
* testsuite/25_algorithms/nth_element/2.cc: Constrain iterations
when testing on a simultor.
From-SVN: r139805
Jan Hubicka [Sat, 30 Aug 2008 14:19:01 +0000 (16:19 +0200)]
optabs.c (expand_abs_nojump): Update BRANCH_COST call.
* optabs.c (expand_abs_nojump): Update BRANCH_COST call.
* fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
* dojump.c (do_jump): Likewise.
* ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
(note-if_info): Add BRANCH_COST.
(noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
branch cost.
* expr.h (BRANCH_COST): Update default.
* predict.c (predictable_edge_p): New function.
* expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
Update BRANCH_COST call.
* basic-block.h (predictable_edge_p): Declare.
* config/alpha/alpha.h (BRANCH_COST): Update.
* config/frv/frv.h (BRANCH_COST): Update.
* config/s390/s390.h (BRANCH_COST): Update.
* config/spu/spu.h (BRANCH_COST): Update.
* config/sparc/sparc.h (BRANCH_COST): Update.
* config/m32r/m32r.h (BRANCH_COST): Update.
* config/i386/i386.h (BRANCH_COST): Update.
* config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
* config/sh/sh.h (BRANCH_COST): Update.
* config/pdp11/pdp11.h (BRANCH_COST): Update.
* config/avr/avr.h (BRANCH_COST): Update.
* config/crx/crx.h (BRANCH_COST): Update.
* config/xtensa/xtensa.h (BRANCH_COST): Update.
* config/stormy16/stormy16.h (BRANCH_COST): Update.
* config/m68hc11/m68hc11.h (BRANCH_COST): Update.
* config/iq2000/iq2000.h (BRANCH_COST): Update.
* config/ia64/ia64.h (BRANCH_COST): Update.
* config/rs6000/rs6000.h (BRANCH_COST): Update.
* config/arc/arc.h (BRANCH_COST): Update.
* config/score/score.h (BRANCH_COST): Update.
* config/arm/arm.h (BRANCH_COST): Update.
* config/pa/pa.h (BRANCH_COST): Update.
* config/mips/mips.h (BRANCH_COST): Update.
* config/vax/vax.h (BRANCH_COST): Update.
* config/h8300/h8300.h (BRANCH_COST): Update.
* params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
* doc/invoke.texi (predictable-branch-cost-outcome): Document.
* doc/tm.texi (BRANCH_COST): Update.
From-SVN: r139804
Samuel Tardieu [Sat, 30 Aug 2008 13:44:22 +0000 (13:44 +0000)]
re PR target/37283 (Cannot build crtbegin.o for ARM)
gcc/
PR target/37283
* config/arm/arm.c (arm_optimization_options): Set
flag_section_anchors to 2 instead of 1 to distinguish it from
-fsection-anchors given explicitely on the command line.
From-SVN: r139803
Richard Sandiford [Sat, 30 Aug 2008 13:12:16 +0000 (13:12 +0000)]
recog.c (split_insn): Consider attaching a REG_EQUAL note to the final insn of a split.
gcc/
* recog.c (split_insn): Consider attaching a REG_EQUAL note to the
final insn of a split.
From-SVN: r139802
Jan Hubicka [Sat, 30 Aug 2008 10:38:55 +0000 (12:38 +0200)]
parse.c (parse_interface): Silence uninitialized var warning.
* parse.c (parse_interface): Silence uninitialized var warning.
* postreload-gcse.c (gate_handle_gcse2): Disable for functions
optimized for speed.
* final.c (compute_alignments): Use optimize_bb_for_size_p.
* tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
* opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
flag_gcse_after_reload_set): New static vars.
(common_handle_option): Enable those flags for profile-use.
(decode_options): Remove optimize_size flags that are handled
on higher granuality.
* tree-vectorizer.c (vectorize_loops): Use
optimize_loop_nest_for_speed_p.
* tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
* tree-predcom.c (tree_predictive_commoning): Use
optimize_loop_for_speed_p.
* varasm.c (assemble_start_function): Use optimize_function_for_speed_p.
* bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
* predict.c (optimize_loop_for_speed_p): Fix walk.
From-SVN: r139801
Jan Hubicka [Sat, 30 Aug 2008 09:46:19 +0000 (11:46 +0200)]
ipa-inline.c (cgraph_estimate_growth): Discover self recursive functions.
* ipa-inline.c (cgraph_estimate_growth): Discover self recursive
functions.
(cgraph_decide_inlining_of_small_function): Use edge->count to detect
profile presence locally.
From-SVN: r139800
Thomas Quinot [Sat, 30 Aug 2008 08:51:53 +0000 (08:51 +0000)]
Make-lang.in: Allow s-oscons.{o,ali} to be built even without a separate libada directory.
2008-08-30 Thomas Quinot <quinot@adacore.com>
gcc/ada/
* gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
be built even without a separate libada directory.
From-SVN: r139799
Jason Merrill [Sat, 30 Aug 2008 05:14:54 +0000 (01:14 -0400)]
Implement C++0x 'auto' semantics.
* decl.c (start_decl_1): Don't complain about auto being incomplete.
(cp_finish_decl): Deduce auto.
* init.c (build_new): Handle 'new auto'.
* typeck2.c (cxx_incomplete_type_diagnostic): Give a different
message for auto than for normal template type parms.
* pt.c (type_dependent_expression_p): Handle { }.
(make_auto): New function.
(listify_autos): New function.
(do_auto_deduction): New function.
(is_auto): New function.
(type_uses_auto): New function.
* cp-tree.h: Declare them.
* parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don't
treat auto as a declspec.
(cp_parser_simple_type_specifier): It's a type-specifier.
From-SVN: r139798
GCC Administrator [Sat, 30 Aug 2008 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r139795
Joseph Myers [Fri, 29 Aug 2008 23:30:18 +0000 (00:30 +0100)]
re PR bootstrap/37086 (GCC 3.4 miscompiles trunk (for cross compiling))
PR bootstrap/37086
* tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
versions before 4.0.
From-SVN: r139792
Mark Mitchell [Fri, 29 Aug 2008 22:19:24 +0000 (22:19 +0000)]
mangle.c (write_type): Add target-specific manglings for non-fundamental types to the substitution table.
* mangle.c (write_type): Add target-specific manglings for
non-fundamental types to the substitution table.
* g++.dg/abi/mangle-neon.C: Add substitution test.
From-SVN: r139791
Jan Hubicka [Fri, 29 Aug 2008 21:58:54 +0000 (23:58 +0200)]
tree-inline.c (insert_init_stmt): Insert sequence even when not in SSA form.
* tree-inline.c (insert_init_stmt): Insert sequence even when
not in SSA form.
From-SVN: r139790
Jeff Law [Fri, 29 Aug 2008 21:35:55 +0000 (15:35 -0600)]
mn10300.c (mn10300_secondary_reload_class): We need secondary reloads for AM33-2 if IN is a pseudo with an equivalent...
* mn10300.c (mn10300_secondary_reload_class): We need secondary
reloads for AM33-2 if IN is a pseudo with an equivalent memory
location and class is an FP register.
From-SVN: r139789
Jan Hubicka [Fri, 29 Aug 2008 21:32:41 +0000 (23:32 +0200)]
see.c (see_merge_one_def_extension): Silence used uninitialized warning.
* see.c (see_merge_one_def_extension): Silence used uninitialized warning.
* matrix-reorg.c (check_allocation_function): Likewise.
* config/i386/driver-i386.c (detect_caches_amd): Likewise.
* parse.c (parse_interface): Likewise.
From-SVN: r139788
Jakub Jelinek [Fri, 29 Aug 2008 18:59:13 +0000 (20:59 +0200)]
re PR middle-end/37261 (Spurious (?) "integer overflow in expression" warnings)
PR c/37261
* fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
compute new & and | in type rather than TREE_TYPE (arg0).
* gcc.dg/pr37261.c: New test.
From-SVN: r139784
Jakub Jelinek [Fri, 29 Aug 2008 18:54:53 +0000 (20:54 +0200)]
dwarf2out.c (fortran_common): Update comment.
* dwarf2out.c (fortran_common): Update comment.
(gen_variable_die): Swap com_die and var_die variables in Fortran
COMMON block handling code.
From-SVN: r139783
Jakub Jelinek [Fri, 29 Aug 2008 18:53:33 +0000 (20:53 +0200)]
dwarf2out.c (descr_info_loc): Handle VAR_DECL.
* dwarf2out.c (descr_info_loc): Handle VAR_DECL.
* trans.h (struct lang_type): Add span.
(GFC_TYPE_ARRAY_SPAN): Define.
* trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
copy TREE_STATIC from decl to span instead of setting it
unconditionally, set DECL_ARTIFICIAL, fix type of initializer
and set GFC_TYPE_ARRAY_SPAN on decl's type.
* trans-types.c (gfc_get_array_descr_info): If
GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
From-SVN: r139782
Jakub Jelinek [Fri, 29 Aug 2008 18:52:22 +0000 (20:52 +0200)]
dwarf2out.c (gen_const_die): New function.
* dwarf2out.c (gen_const_die): New function.
(size_of_die, value_format, output_die): Output larger
dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
(native_encode_initializer): New function.
(tree_add_const_value_attribute): Call it.
(gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
* trans-decl.c (check_constant_initializer,
gfc_emit_parameter_debug_info): New functions.
(gfc_generate_module_vars, gfc_generate_function_code): Emit
PARAMETERs and unreferenced variables with initializers into
debug info.
From-SVN: r139781
Jakub Jelinek [Fri, 29 Aug 2008 18:50:30 +0000 (20:50 +0200)]
gfortran.h (gfc_use_list): Add where field.
* gfortran.h (gfc_use_list): Add where field.
* module.c (use_locus): New static variable.
(gfc_match_use): Set it.
(gfc_use_module): Copy it to gfc_use_list's where field.
* trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
(gfc_trans_use_stmts): Set backend locus before calling the debug
hook. Allow non-VAR_DECLs to be created even for non-external
module. Don't emit anything so far for renames from different
modules.
From-SVN: r139780
Jakub Jelinek [Fri, 29 Aug 2008 18:49:36 +0000 (20:49 +0200)]
dwarf2out.c (gen_formal_parameter_die, [...]): For DECL_BY_REFERENCE decls don't pass TREE_READONLY and TREE_THIS_VOLATILE to...
* dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
DECL_BY_REFERENCE decls don't pass TREE_READONLY and
TREE_THIS_VOLATILE to add_type_attribute.
From-SVN: r139779
Jakub Jelinek [Fri, 29 Aug 2008 18:48:30 +0000 (20:48 +0200)]
dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG types.
* dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
types.
(gen_array_type_die): Emit DW_TAG_string_type for Fortran character
types.
From-SVN: r139778
Jakub Jelinek [Fri, 29 Aug 2008 18:47:19 +0000 (20:47 +0200)]
re PR fortran/24790 (arguments are displayed as reference or pointer to normal type in GDB)
PR fortran/24790
* trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
PARM_DECLs with pointer or reference type.
From-SVN: r139777
Jakub Jelinek [Fri, 29 Aug 2008 18:46:32 +0000 (20:46 +0200)]
dwarf2out.c (loc_by_reference): New function.
* dwarf2out.c (loc_by_reference): New function.
(add_location_or_const_value_attribute): Use it.
From-SVN: r139776
Jakub Jelinek [Fri, 29 Aug 2008 18:45:25 +0000 (20:45 +0200)]
re PR fortran/23057 (Fortran common blocks are not described with DW_TAG_common_block)
PR fortran/23057
* dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
as DW_TAG_variable children of DW_TAG_common_block rather than
DW_TAG_member children. Put DW_AT_external to individual
DW_TAG_variable DIEs, not to DW_TAG_common_block.
* gfortran.dg/debug/pr35154-dwarf2.f: Adjust for replacement
of DW_TAG_member with DW_TAG_variable.
From-SVN: r139775
Jakub Jelinek [Fri, 29 Aug 2008 18:43:57 +0000 (20:43 +0200)]
trans-decl.c (gfc_build_qualified_array): Build non-flat array type for debug info purposes.
* trans-decl.c (gfc_build_qualified_array): Build non-flat
array type for debug info purposes.
* dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
loc_descriptor_from_tree_1.
From-SVN: r139774
Jakub Jelinek [Fri, 29 Aug 2008 18:41:19 +0000 (20:41 +0200)]
re PR fortran/29635 (debug info of modules)
PR fortran/29635
PR fortran/23057
* debug.h (struct gcc_debug_hooks): Add NAME and CHILD
arguments to imported_module_or_decl.
(debug_nothing_tree_tree): Removed.
(debug_nothing_tree_tree_tree_bool): New prototype.
* debug.c (do_nothing_debug_hooks): Adjust.
(debug_nothing_tree_tree): Removed.
(debug_nothing_tree_tree_tree_bool): New function.
* dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
(gen_variable_die): Put all common vars for the
same COMMON block under one DW_TAG_common_block.
(declare_in_namespace): Return new context_die, for Fortran
return the module DIE instead of adding extra declarations into
the namespace.
(gen_type_die_with_usage): Adjust declare_in_namespace caller.
(gen_namespace_die): If is_fortran (), generate DW_TAG_module
instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
DW_AT_declaration.
(dwarf2out_global_decl): Don't skip Fortran global vars.
(gen_decl_die): Likewise. Adjust declare_in_namespace callers.
(dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
DW_TAG_imported_declaration as child of previous
DW_TAG_imported_module.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* name-lookup.c (do_using_directive, cp_emit_debug_info_for_using):
Adjust debug_hooks->imported_module_or_decl callers.
* f95-lang.c (gfc_init_ts): New function.
(LANG_HOOKS_INIT_TS): Define.
* gfortran.h (gfc_use_rename): New type, moved from module.c.
(gfc_get_use_rename): New macro, moved from module.c.
(gfc_use_list): New type.
(gfc_get_use_list): New macro.
(gfc_namespace): Add use_stmts field.
(gfc_free_use_stmts): New prototype.
* Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
* module.c (gfc_use_rename, gfc_get_use_rename): Moved to
gfortran.h.
(gfc_use_module): Chain the USE statement info to
ns->use_stmts.
(gfc_free_use_stmts): New function.
* symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
* trans.h (struct module_htab_entry): New type.
(gfc_find_module, gfc_module_add_decl): New functions.
* trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
the module, adjust DECL_CONTEXTs of module procedures and
call gfc_module_add_decl for them.
* trans-common.c (build_common_decl): Set DECL_IGNORED_P
on the common variable.
(create_common): Set DECL_IGNORED_P for use associated vars.
* trans-decl.c: Include debug.h.
(gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
modules.
(build_function_decl): Allow current_function_decl's context
to be a NAMESPACE_DECL.
(module_htab, cur_module): New variables.
(module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
functions.
(gfc_create_module_variable): Adjust DECL_CONTEXTs of module
variables and types and call gfc_module_add_decl for them.
(gfc_generate_module_vars): Temporarily set cur_module.
(gfc_trans_use_stmts): New function.
(gfc_generate_function_code): Call it.
(gfc_generate_block_data): Set DECL_IGNORED_P on decl.
* trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
and TYPE_CONTEXT of module derived types.
From-SVN: r139773
Jan Hubicka [Fri, 29 Aug 2008 16:41:35 +0000 (18:41 +0200)]
cgraph.c (cgraph_remove_node): Do not remove nested nodes.
* cgraph.c (cgraph_remove_node): Do not remove nested nodes.
* cgraph.h (cgraph_maybe_hot_edge_p): Declare.
* ipa-cp.c (n_cloning_candidates): New static variable.
(ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
(ipcp_print_all_lattices): Improve debug output.
(ipcp_cloning_candidate_p): New function.
(ipcp_initialize_node_lattices): Use it.
(ipcp_init_stage): Do only analyzis here; prettier debug output.
(ipcp_propagate_stage): Prettier debug output.
(ipcp_iterate_stage): Initialize latices here; prettier debug output.
(ipcp_print_all_structures): Remove.
(ipcp_need_redirect_p): Test !n_cloning_candidates.
(ipcp_insert_stage): Prettier debug output; call
cgraph_remove_unreachable_nodes before propagating.
(pass_ipa_cp): Schedule function removal pass.
* ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
debug output.
(cgraph_maybe_hot_edge_p): Move to ...
* predict.c (cgraph_maybe_hot_edge_p) ... here.
* opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
(common_handle_option): Set them; enable ipa-cp when profiling.
* ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
(ipa_print_all_jump_functions): Likewise.
(ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
(ipa_print_node_params, ipa_print_all_params): New.
* ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
ipa_print_all_param_flags): Remove.
(ipa_print_node_params, ipa_print_all_params): New.
From-SVN: r139772
Bob Wilson [Fri, 29 Aug 2008 16:39:59 +0000 (16:39 +0000)]
xtensa.c (xtensa_secondary_reload_class): Revert change from 2008-04-03.
* config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
change from 2008-04-03.
* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
From-SVN: r139771
Vladimir Makarov [Fri, 29 Aug 2008 16:18:11 +0000 (16:18 +0000)]
re PR rtl-optimization/37251 (ICE with ira: delete_allocno_from_bucket)
2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37251
* ira-color.c (push_allocnos_to_stack): Truncate
removed_splay_allocno_vec.
From-SVN: r139770
Vladimir Makarov [Fri, 29 Aug 2008 16:16:45 +0000 (16:16 +0000)]
re PR middle-end/37243 (IRA causes wrong code generation)
2008-08-29 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-opt/37243
* ira-color (ira_fast_allocation): Don't assign hard registers to
global allocnos.
From-SVN: r139769
Jan Hubicka [Fri, 29 Aug 2008 14:57:20 +0000 (16:57 +0200)]
re PR middle-end/37278 (Revision 139760 causes many failures)
PR middle-end/37278
* predict.c (optimize_loop_nest_for_speed_p): Do not ICE
for cold internal loops.
From-SVN: r139768
Laurent GUERBY [Fri, 29 Aug 2008 13:44:25 +0000 (13:44 +0000)]
Makefile.in (FLAGS_TO_PASS): renamed to LIBADA_FLAGS_TO_PASS to avoid conflicts.
2008-08-29 Laurent Guerby <laurent@guerby.net>
* Makefile.in (FLAGS_TO_PASS): renamed to LIBADA_FLAGS_TO_PASS to
avoid conflicts. Factor more flags to pass.
(libsubdir): New variable.
(install-gnatlib): New target.
From-SVN: r139767
Jan Hubicka [Fri, 29 Aug 2008 12:55:54 +0000 (14:55 +0200)]
ipa-1.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-1.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-2.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-3.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-4.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-5.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-7.c: Fix template for better debug output.
From-SVN: r139766
Richard Guenther [Fri, 29 Aug 2008 11:47:01 +0000 (11:47 +0000)]
tree-ssa-structalias.c (create_variable_info_for): Do not create fields for heap vars or vars with a noalias state.
2008-08-29 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (create_variable_info_for): Do not
create fields for heap vars or vars with a noalias state.
For NO_ALIAS_ANYTHING variables add a self-constraint, not one
from ESCAPED.
* gfortran.fortran-torture/compile/
20080806-1.f90: New testcase.
From-SVN: r139765
Richard Guenther [Fri, 29 Aug 2008 11:43:22 +0000 (11:43 +0000)]
common.opt (ftree-store-ccp): Mark as preserved for backward compatibility.
2008-08-29 Richard Guenther <rguenther@suse.de>
* common.opt (ftree-store-ccp): Mark as preserved for
backward compatibility.
* doc/invoke.texi (-ftree-store-ccp): Remove documentation.
* tree-pass.h (pass_store_ccp): Remove.
* tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
(first_vdef): Remove declaration.
(get_value_loaded_by): Likewise.
* tree-ssa-ccp.c (do_store_ccp): Remove.
(get_default_value): Simplify as do_store_ccp is always false
now. Do not initialize mem_ref.
(set_value_varying): Likewise.
(canonicalize_float_value): Likewise.
(set_lattice_value): Likewise.
(likely_value): Likewise.
(surely_varying_stmt_p): Likewise.
(ccp_initialize): Likewise.
(ccp_lattice_meet): Likewise.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Fold into ...
(do_ssa_ccp): ... this.
(do_ssa_store_ccp): Remove.
(gate_store_ccp): Likewise.
(pass_store_ccp): Likewise.
* tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
initialize mem_ref.
* tree-ssa-propagate.c (first_vdef): Remove.
(get_value_loaded_by): Likewise.
(replace_vuses_in): Likewise.
(substitute_and_fold): Do not call replace_vuses_in.
* opts.c (decode_options): Do not set flag_tree_store_ccp.
From-SVN: r139764
Richard Guenther [Fri, 29 Aug 2008 11:40:47 +0000 (11:40 +0000)]
re PR middle-end/37236 (ICE: in mark_operand_necessary, at tree-ssa-dce.c:242)
2008-08-29 Richard Guenther <rguenther@suse.de>
PR middle-end/37236
* tree-ssa-structalias.c (intra_create_variable_infos): Mark
PARAM_NOALIAS tags with is_heapvar.
* tree-ssa-operands.c (access_can_touch_variable): Offset
based tests do not apply for heapvars. Fix offset test.
* gfortran.fortran-torture/compile/pr37236.f: New testcase.
From-SVN: r139763
Jan Hubicka [Fri, 29 Aug 2008 11:39:04 +0000 (13:39 +0200)]
invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
* doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
(-fipa-cp-clone): Enabled by default at -O3.
* opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
From-SVN: r139762
Jan Hubicka [Fri, 29 Aug 2008 11:31:40 +0000 (13:31 +0200)]
tree.c (build_function_type_skip_args, [...]): New functions.
* tree.c (build_function_type_skip_args, build_function_decl_skip_args):
New functions.
* tree.h (build_function_type_skip_args, build_function_decl_skip_args):
Declare.
* gimple.c (giple_copy_call_skip_args): New function.
(giple_copy_call_skip_args): Declare.
* cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
* ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
(ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
(ipcp_create_replace_map): Improve debug output.
(ipcp_need_redirect_p): Return false when not clonning.
(ipcp_update_callgraph): Skip args.
(ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
skip args.
* cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
(save_inline_function_body): Update call of tree_function_versioning.
* ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
* tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
(tree_function_versioning): Likewise.
* tree-inline.h (tree_function_versioning): Update prototype.
From-SVN: r139761
Jan Hubicka [Fri, 29 Aug 2008 10:35:57 +0000 (12:35 +0200)]
loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
* loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
* tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
* tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
* postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
* value-prof.c (gimple_divmod_fixed_value_transform,
gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
gimple_stringops_transform): Use optimize_bb_for_size_p.
* ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
* final.c (compute_alignments): Use optimize_function_for_size_p.
* builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
(fold_builtin_strcpy, fold_builtin_fputs): Use
optimize_function_for_size_p.
* fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
* recog.c (relax_delay_slots): Likewise.
* tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
(execute_cse_reciprocals): Use optimize_bb_for_size_p.
* ipa-inline.c (cgraph_decide_recursive_inlining): Use
optimize_function_for_size_p.
(cgraph_decide_inlining_of_small_function): Use
optimize_function_for_size_p.
* global.c (find_reg): Use optimize_function_for_size_p.
* opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
flag_prefetch_loop_arrays. Those can work it out from profile.
* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
optimize_loop_for_speed_p.
* predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
argument.
(optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
* tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
* tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
* local-alloc.c (block_alloc): Pass BB pointer.
(find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
* gcse.c (gcse_main): Use optimize_function_for_size_p.
* loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
(decide_peel_completely): Likewise.
* tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
optimize_loop_for_size_p.
(vect_enhance_data_refs_alignment): Likewise.
* tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
(coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
* cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
(try_crossjump_bb): Use optimize_bb_for_size_p.
* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
optimize_loop_for_speed_p.
* bb-reorder.c (find_traces_1_round): Likewise.
(copy_bb): Use optimize_bb_for_speed_p.
(duplicate_computed_gotos): Likewise.
* basic-block.h (optimize_loop_nest_for_size_p,
optimize_loop_nest_for_speed_p): New.
* stmt.c (expand_case): Use optimize_insn_for_size_p.
From-SVN: r139760
Tristan Gingold [Fri, 29 Aug 2008 10:07:23 +0000 (10:07 +0000)]
gcov.c (main): Call expandargv.
2008-08-29 Tristan Gingold <gingold@adacore.com>
* gcov.c (main): Call expandargv.
From-SVN: r139759
Tristan Gingold [Fri, 29 Aug 2008 09:36:01 +0000 (09:36 +0000)]
MAINTAINERS (Write after Approval): Add myself.
2008-08-29 Tristan Gingold <gingold@adacore.com>
* MAINTAINERS (Write after Approval): Add myself.
From-SVN: r139757
Jan Hubicka [Fri, 29 Aug 2008 08:58:52 +0000 (10:58 +0200)]
tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop is not cold.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
is not cold.
* predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
Constify arguments.
(optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
* basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
Constify.
(optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
From-SVN: r139756
Jan Hubicka [Fri, 29 Aug 2008 08:40:01 +0000 (10:40 +0200)]
cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.
* cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.
* tree-pass.h (pass_strip_predict_hints): Declare.
* predict.c (strip_builtin_expect): Rename to ...
(strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
(tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
(tree_estimate_probability): Do not strip builtin_expect.
(pass_strip_predict_hints): New pass.
* tree-inline.c (expand_call_inline): When inlining cold function, predict
it as unlikely.
* passes.c (init_optimization_passes): Add pass_strip_predict_hints.
From-SVN: r139755
Richard Guenther [Fri, 29 Aug 2008 08:36:10 +0000 (08:36 +0000)]
re PR tree-optimization/37207 (ice at tree-ssa-ifcombine.c:222 for -Os)
2008-08-29 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37207
* tree-vrp.c (extract_range_from_binary_expr): Also try
to constant fold if only one of the operands is a constant.
* gcc.dg/tree-ssa/vrp46.c: New testcase.
From-SVN: r139754
Nick Clifton [Fri, 29 Aug 2008 08:29:08 +0000 (08:29 +0000)]
m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in the same way as SYMBOL_REFs.
* config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
the same way as SYMBOL_REFs.
From-SVN: r139753
Bob Wilson [Fri, 29 Aug 2008 04:34:15 +0000 (04:34 +0000)]
* config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
From-SVN: r139750
GCC Administrator [Fri, 29 Aug 2008 00:16:37 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r139746
Adam Nemet [Fri, 29 Aug 2008 00:12:12 +0000 (00:12 +0000)]
mips.h (ISA_HAS_BBIT): New macro.
* config/mips/mips.h (ISA_HAS_BBIT): New macro.
* config/mips/mips.md (branch_likely): Remove const. Fix
comment formatting.
(define_delay for type "branch"): Change to only apply for branch
with likely variant.
(define_delay for type "branch" and "branch_likely" no). New delay
definition.
(equality_op): New code iterator.
(bbv, bbinv): New code attributes.
(*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
patterns.
testsuite/
* gcc.target/mips/octeon-bbit-1.c: New test.
* gcc.target/mips/octeon-bbit-2.c: New test.
* gcc.target/mips/octeon-bbit-3.c: New test.
From-SVN: r139743
Manuel López-Ibáñez [Fri, 29 Aug 2008 00:06:19 +0000 (00:06 +0000)]
re PR c/18050 (-Wsequence-point reports false positives)
2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
Andrew Pinski <pinskia@gcc.gnu.org>
PR 18050
* c-common.c (verify_tree): Fix handling of ADDR_EXPR.
testsuite/
* gcc.dg/Wsequence-point-pr18050.c: New.
* g++.dg/warn/Wsequence-point-pr18050.C: New.
Co-Authored-By: Andrew Pinski <pinskia@gcc.gnu.org>
From-SVN: r139742
Paolo Carlini [Thu, 28 Aug 2008 23:58:05 +0000 (23:58 +0000)]
typedef.cc: Rename to .../typedefs.cc.
2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/tr1/6_containers/unordered_set/requirements/typedef.cc:
Rename to .../typedefs.cc.
* testsuite/tr1/6_containers/unordered_map/requirements/typedef.cc:
Likewise.
* testsuite/tr1/6_containers/unordered_multiset/requirements/
typedef.cc: Likewise.
* testsuite/tr1/6_containers/unordered_multimap/requirements/
typedef.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/typedef.cc:
Likewise.
* testsuite/23_containers/unordered_map/requirements/typedef.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/requirements/typedef.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/requirements/typedef.cc:
Likewise.
From-SVN: r139741
Paolo Carlini [Thu, 28 Aug 2008 23:37:41 +0000 (23:37 +0000)]
re PR c++/37260 (infinite loop in init)
/cp
2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/37260
* decl.c (reshape_init_r): Check init for error_mark_node.
/testsuite
2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/37260
* g++.dg/parse/crash44.C: New.
From-SVN: r139740
Paolo Carlini [Thu, 28 Aug 2008 22:00:46 +0000 (22:00 +0000)]
gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix rule that a symbolic constant...
2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
* gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
rule that a symbolic constant must be defined and >= 0 for the
corresponding facility to be present at compile-time.
* gthr-posix.c: Likewise.
From-SVN: r139739
Adam Nemet [Thu, 28 Aug 2008 21:58:02 +0000 (21:58 +0000)]
mips.h (ISA_HAS_DMUL3): New macro.
* config/mips/mips.h (ISA_HAS_DMUL3): New macro.
* config/mips/mips.md (D): New mode attribute.
(mulsi3, muldi3): Merge it into ...
(mul<mode>3): ... new template. Use _mul3 ending for 3-op
patterns.
(muldi3_mul3): New pattern.
(mulsi3_mult3): Rename to mulsi3_mul3.
testsuite/
* gcc.target/mips/octeon-dmul-1.c: New test.
* gcc.target/mips/octeon-dmul-2.c: New test.
* gcc.target/mips/dmult-1.c: New test.
From-SVN: r139738
Jan Hubicka [Thu, 28 Aug 2008 20:12:57 +0000 (22:12 +0200)]
expmed.c (store_bit_field_1): Be prepared for movstrict expander to fail.
* expmed.c (store_bit_field_1): Be prepared for movstrict expander to fail.
* predict.c (always_optimize_for_size_p): Rename to ...
(optimize_function_for_size): ... this one; make extern.
(optimize_function_for_speed_p): New.
(optimize_bb_for_size_p, optimize_bb_for_size_p,
optimize_edge_for_size_p,optimize_edge_for_size_p,
optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
* basic-block.h (optimize_function_for_size_p,
optimize_function_for_speed_p): Declare.
* i386.md (optimize_size checks): Replace them by appropriate predicate.
(standard_80387_constant_p, ix86_compute_frame_layout,
ix86_expand_epilogue, ix86_decompose_address,
print_operand, emit_i387_cw_initialization,
inline_memory_move_cost, ix86_pad_returns,
ix86_reorg): Replace optimize_size checks.
From-SVN: r139737
Richard Sandiford [Thu, 28 Aug 2008 20:02:54 +0000 (20:02 +0000)]
rtl.h (simplify_subreg_regno): Declare.
gcc/
* rtl.h (simplify_subreg_regno): Declare.
* rtlanal.c (simplify_subreg_regno): New function, split out from...
* simplify-rtx.c (simplify_subreg): ...here.
* reload.c (find_reloads): Use simplify_subreg_regno instead of
subreg_offset_representable_p.
From-SVN: r139736
Ulrich Weigand [Thu, 28 Aug 2008 19:40:37 +0000 (19:40 +0000)]
Added file forgotten in commit.
From-SVN: r139731
Xuepeng Guo [Thu, 28 Aug 2008 19:36:58 +0000 (19:36 +0000)]
vector-1b_main.c: New.
2008-08-28 Xuepeng Guo <xuepeng.guo@intel.com>
Joey Ye <joey.ye@intel.com>
H.J. Lu <hongjiu.lu@intel.com>
* gcc.dg/compat/vector-1b_main.c: New.
* gcc.dg/compat/vector-1b_x.c: Likewise.
* gcc.dg/compat/vector-1b_y.c: Likewise.
* gcc.dg/compat/vector-2b_main.c: Likewise.
* gcc.dg/compat/vector-2b_x.c: Likewise.
* gcc.dg/compat/vector-2b_y.c: Likewise.
* gcc.target/i386/aes-avx-check.h: Likewise.
* gcc.target/i386/avx-1.c: Likewise.
* gcc.target/i386/avx-2.c: Likewise.
* gcc.target/i386/avx-3.c: Likewise.
* gcc.target/i386/avx-check.h: Likewise.
* gcc.target/i386/avx-set1-epi32-1.c: Likewise.
* gcc.target/i386/avx-set1-pd-256-1.c: Likewise.
* gcc.target/i386/avx-set1-ps-256-1.c: Likewise.
* gcc.target/i386/avx-set-v16hi-1.c: Likewise.
* gcc.target/i386/avx-set-v16hi-2.c: Likewise.
* gcc.target/i386/avx-set-v16hi-3.c: Likewise.
* gcc.target/i386/avx-set-v16hi-4.c: Likewise.
* gcc.target/i386/avx-set-v16hi-5.c: Likewise.
* gcc.target/i386/avx-set-v32qi-1.c: Likewise.
* gcc.target/i386/avx-set-v32qi-2.c: Likewise.
* gcc.target/i386/avx-set-v32qi-3.c: Likewise.
* gcc.target/i386/avx-set-v32qi-4.c: Likewise.
* gcc.target/i386/avx-set-v32qi-5.c: Likewise.
* gcc.target/i386/avx-set-v4df-1.c: Likewise.
* gcc.target/i386/avx-set-v4df-2.c: Likewise.
* gcc.target/i386/avx-set-v4df-3.c: Likewise.
* gcc.target/i386/avx-set-v4df-4.c: Likewise.
* gcc.target/i386/avx-set-v4df-5.c: Likewise.
* gcc.target/i386/avx-set-v4di-1.c: Likewise.
* gcc.target/i386/avx-set-v4di-2.c: Likewise.
* gcc.target/i386/avx-set-v4di-3.c: Likewise.
* gcc.target/i386/avx-set-v4di-4.c: Likewise.
* gcc.target/i386/avx-set-v4di-5.c: Likewise.
* gcc.target/i386/avx-set-v8sf-1.c: Likewise.
* gcc.target/i386/avx-set-v8sf-2.c: Likewise.
* gcc.target/i386/avx-set-v8sf-3.c: Likewise.
* gcc.target/i386/avx-set-v8sf-4.c: Likewise.
* gcc.target/i386/avx-set-v8sf-5.c: Likewise.
* gcc.target/i386/avx-set-v8si-1.c: Likewise.
* gcc.target/i386/avx-set-v8si-2.c: Likewise.
* gcc.target/i386/avx-set-v8si-3.c: Likewise.
* gcc.target/i386/avx-set-v8si-4.c: Likewise.
* gcc.target/i386/avx-set-v8si-5.c: Likewise.
* gcc.target/i386/avx-setzero-pd-256-1.c: Likewise.
* gcc.target/i386/avx-setzero-ps-256-1.c: Likewise.
* gcc.target/i386/avx-setzero-si256-1.c: Likewise.
* gcc.target/i386/avx-vaddpd-1.c: Likewise.
* gcc.target/i386/avx-vaddpd-256-1.c: Likewise.
* gcc.target/i386/avx-vaddps-1.c: Likewise.
* gcc.target/i386/avx-vaddps-256-1.c: Likewise.
* gcc.target/i386/avx-vaddsd-1.c: Likewise.
* gcc.target/i386/avx-vaddss-1.c: Likewise.
* gcc.target/i386/avx-vaddsubpd-1.c: Likewise.
* gcc.target/i386/avx-vaddsubpd-256-1.c: Likewise.
* gcc.target/i386/avx-vaddsubps-1.c: Likewise.
* gcc.target/i386/avx-vaddsubps-256-1.c: Likewise.
* gcc.target/i386/avx-vaesdec-1.c: Likewise.
* gcc.target/i386/avx-vaesdeclast-1.c: Likewise.
* gcc.target/i386/avx-vaesenc-1.c: Likewise.
* gcc.target/i386/avx-vaesenclast-1.c: Likewise.
* gcc.target/i386/avx-vaesimc-1.c: Likewise.
* gcc.target/i386/avx-vaeskeygenassist-1.c: Likewise.
* gcc.target/i386/avx-vandnpd-1.c: Likewise.
* gcc.target/i386/avx-vandnpd-256-1.c: Likewise.
* gcc.target/i386/avx-vandnps-1.c: Likewise.
* gcc.target/i386/avx-vandnps-256-1.c: Likewise.
* gcc.target/i386/avx-vandpd-1.c: Likewise.
* gcc.target/i386/avx-vandpd-256-1.c: Likewise.
* gcc.target/i386/avx-vandps-1.c: Likewise.
* gcc.target/i386/avx-vandps-256-1.c: Likewise.
* gcc.target/i386/avx-vblendpd-1.c: Likewise.
* gcc.target/i386/avx-vblendpd-256-1.c: Likewise.
* gcc.target/i386/avx-vblendps-256-1.c: Likewise.
* gcc.target/i386/avx-vblendvpd-256-1.c: Likewise.
* gcc.target/i386/avx-vblendvps-256-1.c: Likewise.
* gcc.target/i386/avx-vbroadcastf128-256-1.c: Likewise.
* gcc.target/i386/avx-vbroadcastf128-256-2.c: Likewise.
* gcc.target/i386/avx-vbroadcastsd-1.c: Likewise.
* gcc.target/i386/avx-vbroadcastss-1.c: Likewise.
* gcc.target/i386/avx-vbroadcastss-2.c: Likewise.
* gcc.target/i386/avx-vcmppd-1.c: Likewise.
* gcc.target/i386/avx-vcmppd-256-1.c: Likewise.
* gcc.target/i386/avx-vcmpps-1.c: Likewise.
* gcc.target/i386/avx-vcmpps-256-1.c: Likewise.
* gcc.target/i386/avx-vcmpsd-1.c: Likewise.
* gcc.target/i386/avx-vcmpss-1.c: Likewise.
* gcc.target/i386/avx-vcomisd-1.c: Likewise.
* gcc.target/i386/avx-vcomisd-2.c: Likewise.
* gcc.target/i386/avx-vcomisd-3.c: Likewise.
* gcc.target/i386/avx-vcomisd-4.c: Likewise.
* gcc.target/i386/avx-vcomisd-5.c: Likewise.
* gcc.target/i386/avx-vcomisd-6.c: Likewise.
* gcc.target/i386/avx-vcomiss-1.c: Likewise.
* gcc.target/i386/avx-vcomiss-2.c: Likewise.
* gcc.target/i386/avx-vcomiss-3.c: Likewise.
* gcc.target/i386/avx-vcomiss-4.c: Likewise.
* gcc.target/i386/avx-vcomiss-5.c: Likewise.
* gcc.target/i386/avx-vcomiss-6.c: Likewise.
* gcc.target/i386/avx-vcvtdq2pd-1.c: Likewise.
* gcc.target/i386/avx-vcvtdq2pd-256-1.c: Likewise.
* gcc.target/i386/avx-vcvtdq2ps-1.c: Likewise.
* gcc.target/i386/avx-vcvtpd2dq-1.c: Likewise.
* gcc.target/i386/avx-vcvtpd2dq-256-1.c: Likewise.
* gcc.target/i386/avx-vcvtpd2ps-1.c: Likewise.
* gcc.target/i386/avx-vcvtpd2ps-256-1.c: Likewise.
* gcc.target/i386/avx-vcvtps2dq-1.c: Likewise.
* gcc.target/i386/avx-vcvtps2dq-256-1.c: Likewise.
* gcc.target/i386/avx-vcvtps2pd-1.c: Likewise.
* gcc.target/i386/avx-vcvtps2pd-256-1.c: Likewise.
* gcc.target/i386/avx-vcvtsd2si-1.c: Likewise.
* gcc.target/i386/avx-vcvtsd2si-2.c: Likewise.
* gcc.target/i386/avx-vcvtsd2ss-1.c: Likewise.
* gcc.target/i386/avx-vcvtsi2sd-1.c: Likewise.
* gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise.
* gcc.target/i386/avx-vcvtsi2ss-1.c: Likewise.
* gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise.
* gcc.target/i386/avx-vcvtss2sd-1.c: Likewise.
* gcc.target/i386/avx-vcvtss2si-1.c: Likewise.
* gcc.target/i386/avx-vcvtss2si-2.c: Likewise.
* gcc.target/i386/avx-vcvttpd2dq-1.c: Likewise.
* gcc.target/i386/avx-vcvttpd2dq-256-1.c: Likewise.
* gcc.target/i386/avx-vcvttps2dq-1.c: Likewise.
* gcc.target/i386/avx-vcvttps2dq-256-1.c: Likewise.
* gcc.target/i386/avx-vcvttsd2si-1.c: Likewise.
* gcc.target/i386/avx-vcvttsd2si-2.c: Likewise.
* gcc.target/i386/avx-vcvttss2si-1.c: Likewise.
* gcc.target/i386/avx-vcvttss2si-2.c: Likewise.
* gcc.target/i386/avx-vdivpd-1.c: Likewise.
* gcc.target/i386/avx-vdivpd-256-1.c: Likewise.
* gcc.target/i386/avx-vdivps-1.c: Likewise.
* gcc.target/i386/avx-vdivps-256-1.c: Likewise.
* gcc.target/i386/avx-vdivsd-1.c: Likewise.
* gcc.target/i386/avx-vdivss-1.c: Likewise.
* gcc.target/i386/avx-vdppd-1.c: Likewise.
* gcc.target/i386/avx-vdppd-2.c: Likewise.
* gcc.target/i386/avx-vdpps-1.c: Likewise.
* gcc.target/i386/avx-vdpps-2.c: Likewise.
* gcc.target/i386/avx-vextractf128-256-1.c: Likewise.
* gcc.target/i386/avx-vextractf128-256-2.c: Likewise.
* gcc.target/i386/avx-vextractps-1.c: Likewise.
* gcc.target/i386/avx-vhaddpd-1.c: Likewise.
* gcc.target/i386/avx-vhaddpd-256-1.c: Likewise.
* gcc.target/i386/avx-vhaddps-1.c: Likewise.
* gcc.target/i386/avx-vhaddps-256-1.c: Likewise.
* gcc.target/i386/avx-vhsubpd-1.c: Likewise.
* gcc.target/i386/avx-vhsubpd-256-1.c: Likewise.
* gcc.target/i386/avx-vhsubps-1.c: Likewise.
* gcc.target/i386/avx-vhsubps-256-1.c: Likewise.
* gcc.target/i386/avx-vinsertf128-256-1.c: Likewise.
* gcc.target/i386/avx-vinsertf128-256-2.c: Likewise.
* gcc.target/i386/avx-vinsertf128-256-3.c: Likewise.
* gcc.target/i386/avx-vinsertps-1.c: Likewise.
* gcc.target/i386/avx-vinsertps-2.c: Likewise.
* gcc.target/i386/avx-vlddqu-1.c: Likewise.
* gcc.target/i386/avx-vlddqu-256-1.c: Likewise.
* gcc.target/i386/avx-vmaskmovpd-256-1.c: Likewise.
* gcc.target/i386/avx-vmaskmovpd-256-2.c: Likewise.
* gcc.target/i386/avx-vmaskmovps-256-1.c: Likewise.
* gcc.target/i386/avx-vmaskmovps-256-2.c: Likewise.
* gcc.target/i386/avx-vmaxpd-1.c: Likewise.
* gcc.target/i386/avx-vmaxpd-256-1.c: Likewise.
* gcc.target/i386/avx-vmaxps-1.c: Likewise.
* gcc.target/i386/avx-vmaxps-256-1.c: Likewise.
* gcc.target/i386/avx-vmaxsd-1.c: Likewise.
* gcc.target/i386/avx-vmaxss-1.c: Likewise.
* gcc.target/i386/avx-vminpd-1.c: Likewise.
* gcc.target/i386/avx-vminpd-256-1.c: Likewise.
* gcc.target/i386/avx-vminps-1.c: Likewise.
* gcc.target/i386/avx-vminps-256-1.c: Likewise.
* gcc.target/i386/avx-vminsd-1.c: Likewise.
* gcc.target/i386/avx-vminss-1.c: Likewise.
* gcc.target/i386/avx-vmovapd-1.c: Likewise.
* gcc.target/i386/avx-vmovapd-256-1.c: Likewise.
* gcc.target/i386/avx-vmovapd-256-2.c: Likewise.
* gcc.target/i386/avx-vmovapd-2.c: Likewise.
* gcc.target/i386/avx-vmovaps-1.c: Likewise.
* gcc.target/i386/avx-vmovaps-256-1.c: Likewise.
* gcc.target/i386/avx-vmovaps-256-2.c: Likewise.
* gcc.target/i386/avx-vmovaps-2.c: Likewise.
* gcc.target/i386/avx-vmovd-1.c: Likewise.
* gcc.target/i386/avx-vmovd-2.c: Likewise.
* gcc.target/i386/avx-vmovddup-1.c: Likewise.
* gcc.target/i386/avx-vmovddup-256-1.c: Likewise.
* gcc.target/i386/avx-vmovdqa-1.c: Likewise.
* gcc.target/i386/avx-vmovdqa-256-1.c: Likewise.
* gcc.target/i386/avx-vmovdqa-256-2.c: Likewise.
* gcc.target/i386/avx-vmovdqa-2.c: Likewise.
* gcc.target/i386/avx-vmovdqu-1.c: Likewise.
* gcc.target/i386/avx-vmovdqu-256-1.c: Likewise.
* gcc.target/i386/avx-vmovdqu-256-2.c: Likewise.
* gcc.target/i386/avx-vmovdqu-2.c: Likewise.
* gcc.target/i386/avx-vmovhlps-1.c: Likewise.
* gcc.target/i386/avx-vmovhpd-1.c: Likewise.
* gcc.target/i386/avx-vmovhpd-2.c: Likewise.
* gcc.target/i386/avx-vmovhps-1.c: Likewise.
* gcc.target/i386/avx-vmovhps-2.c: Likewise.
* gcc.target/i386/avx-vmovlhps-1.c: Likewise.
* gcc.target/i386/avx-vmovlpd-1.c: Likewise.
* gcc.target/i386/avx-vmovlpd-2.c: Likewise.
* gcc.target/i386/avx-vmovmskpd-1.c: Likewise.
* gcc.target/i386/avx-vmovmskpd-256-1.c: Likewise.
* gcc.target/i386/avx-vmovmskps-1.c: Likewise.
* gcc.target/i386/avx-vmovmskps-256-1.c: Likewise.
* gcc.target/i386/avx-vmovntdq-1.c: Likewise.
* gcc.target/i386/avx-vmovntdqa-1.c: Likewise.
* gcc.target/i386/avx-vmovntpd-1.c: Likewise.
* gcc.target/i386/avx-vmovntps-1.c: Likewise.
* gcc.target/i386/avx-vmovq-1.c: Likewise.
* gcc.target/i386/avx-vmovq-2.c: Likewise.
* gcc.target/i386/avx-vmovq-3.c: Likewise.
* gcc.target/i386/avx-vmovsd-1.c: Likewise.
* gcc.target/i386/avx-vmovsd-2.c: Likewise.
* gcc.target/i386/avx-vmovshdup-1.c: Likewise.
* gcc.target/i386/avx-vmovshdup-256-1.c: Likewise.
* gcc.target/i386/avx-vmovsldup-1.c: Likewise.
* gcc.target/i386/avx-vmovsldup-256-1.c: Likewise.
* gcc.target/i386/avx-vmovss-1.c: Likewise.
* gcc.target/i386/avx-vmovss-2.c: Likewise.
* gcc.target/i386/avx-vmovss-3.c: Likewise.
* gcc.target/i386/avx-vmovupd-1.c: Likewise.
* gcc.target/i386/avx-vmovupd-256-1.c: Likewise.
* gcc.target/i386/avx-vmovupd-256-2.c: Likewise.
* gcc.target/i386/avx-vmovupd-2.c: Likewise.
* gcc.target/i386/avx-vmovups-1.c: Likewise.
* gcc.target/i386/avx-vmovups-256-1.c: Likewise.
* gcc.target/i386/avx-vmovups-256-2.c: Likewise.
* gcc.target/i386/avx-vmovups-2.c: Likewise.
* gcc.target/i386/avx-vmpsadbw-1.c: Likewise.
* gcc.target/i386/avx-vmulpd-1.c: Likewise.
* gcc.target/i386/avx-vmulpd-256-1.c: Likewise.
* gcc.target/i386/avx-vmulps-1.c: Likewise.
* gcc.target/i386/avx-vmulps-256-1.c: Likewise.
* gcc.target/i386/avx-vmulsd-1.c: Likewise.
* gcc.target/i386/avx-vmulss-1.c: Likewise.
* gcc.target/i386/avx-vorpd-1.c: Likewise.
* gcc.target/i386/avx-vorpd-256-1.c: Likewise.
* gcc.target/i386/avx-vorps-1.c: Likewise.
* gcc.target/i386/avx-vorps-256-1.c: Likewise.
* gcc.target/i386/avx-vpabsb-1.c: Likewise.
* gcc.target/i386/avx-vpabsd-1.c: Likewise.
* gcc.target/i386/avx-vpabsw-1.c: Likewise.
* gcc.target/i386/avx-vpackssdw-1.c: Likewise.
* gcc.target/i386/avx-vpacksswb-1.c: Likewise.
* gcc.target/i386/avx-vpackusdw-1.c: Likewise.
* gcc.target/i386/avx-vpackuswb-1.c: Likewise.
* gcc.target/i386/avx-vpaddb-1.c: Likewise.
* gcc.target/i386/avx-vpaddd-1.c: Likewise.
* gcc.target/i386/avx-vpaddq-1.c: Likewise.
* gcc.target/i386/avx-vpaddsb-1.c: Likewise.
* gcc.target/i386/avx-vpaddsw-1.c: Likewise.
* gcc.target/i386/avx-vpaddusb-1.c: Likewise.
* gcc.target/i386/avx-vpaddusw-1.c: Likewise.
* gcc.target/i386/avx-vpaddw-1.c: Likewise.
* gcc.target/i386/avx-vpalignr-1.c: Likewise.
* gcc.target/i386/avx-vpand-1.c: Likewise.
* gcc.target/i386/avx-vpandn-1.c: Likewise.
* gcc.target/i386/avx-vpavgb-1.c: Likewise.
* gcc.target/i386/avx-vpavgw-1.c: Likewise.
* gcc.target/i386/avx-vpblendvb-1.c: Likewise.
* gcc.target/i386/avx-vpblendw-1.c: Likewise.
* gcc.target/i386/avx-vpcmpeqb-1.c: Likewise.
* gcc.target/i386/avx-vpcmpeqd-1.c: Likewise.
* gcc.target/i386/avx-vpcmpeqq-1.c: Likewise.
* gcc.target/i386/avx-vpcmpeqw-1.c: Likewise.
* gcc.target/i386/avx-vpcmpestri-1.c: Likewise.
* gcc.target/i386/avx-vpcmpestri-2.c: Likewise.
* gcc.target/i386/avx-vpcmpestrm-1.c: Likewise.
* gcc.target/i386/avx-vpcmpestrm-2.c: Likewise.
* gcc.target/i386/avx-vpcmpgtb-1.c: Likewise.
* gcc.target/i386/avx-vpcmpgtd-1.c: Likewise.
* gcc.target/i386/avx-vpcmpgtq-1.c: Likewise.
* gcc.target/i386/avx-vpcmpgtw-1.c: Likewise.
* gcc.target/i386/avx-vpcmpistri-1.c: Likewise.
* gcc.target/i386/avx-vpcmpistri-2.c: Likewise.
* gcc.target/i386/avx-vpcmpistrm-1.c: Likewise.
* gcc.target/i386/avx-vpcmpistrm-2.c: Likewise.
* gcc.target/i386/avx-vperm2f128-256-1.c: Likewise.
* gcc.target/i386/avx-vperm2f128-256-2.c: Likewise.
* gcc.target/i386/avx-vperm2f128-256-3.c: Likewise.
* gcc.target/i386/avx-vpermil2pd-1.c: Likewise.
* gcc.target/i386/avx-vpermil2pd-256-1.c: Likewise.
* gcc.target/i386/avx-vpermil2ps-1.c: Likewise.
* gcc.target/i386/avx-vpermil2ps-256-1.c: Likewise.
* gcc.target/i386/avx-vpermilpd-1.c: Likewise.
* gcc.target/i386/avx-vpermilpd-256-1.c: Likewise.
* gcc.target/i386/avx-vpermilpd-256-2.c: Likewise.
* gcc.target/i386/avx-vpermilpd-2.c: Likewise.
* gcc.target/i386/avx-vpermilps-1.c: Likewise.
* gcc.target/i386/avx-vpermilps-256-1.c: Likewise.
* gcc.target/i386/avx-vpermilps-256-2.c: Likewise.
* gcc.target/i386/avx-vpermilps-2.c: Likewise.
* gcc.target/i386/avx-vpextrb-1.c: Likewise.
* gcc.target/i386/avx-vpextrd-1.c: Likewise.
* gcc.target/i386/avx-vpextrq-1.c: Likewise.
* gcc.target/i386/avx-vpextrw-1.c: Likewise.
* gcc.target/i386/avx-vphaddd-1.c: Likewise.
* gcc.target/i386/avx-vphaddsw-1.c: Likewise.
* gcc.target/i386/avx-vphaddw-1.c: Likewise.
* gcc.target/i386/avx-vphminposuw-1.c: Likewise.
* gcc.target/i386/avx-vphsubd-1.c: Likewise.
* gcc.target/i386/avx-vphsubsw-1.c: Likewise.
* gcc.target/i386/avx-vphsubw-1.c: Likewise.
* gcc.target/i386/avx-vpinsrb-1.c: Likewise.
* gcc.target/i386/avx-vpinsrd-1.c: Likewise.
* gcc.target/i386/avx-vpinsrq-1.c: Likewise.
* gcc.target/i386/avx-vpmaddubsw-1.c: Likewise.
* gcc.target/i386/avx-vpmaxsb-1.c: Likewise.
* gcc.target/i386/avx-vpmaxsd-1.c: Likewise.
* gcc.target/i386/avx-vpmaxsw-1.c: Likewise.
* gcc.target/i386/avx-vpmaxub-1.c: Likewise.
* gcc.target/i386/avx-vpmaxud-1.c: Likewise.
* gcc.target/i386/avx-vpmaxuw-1.c: Likewise.
* gcc.target/i386/avx-vpminsb-1.c: Likewise.
* gcc.target/i386/avx-vpminsd-1.c: Likewise.
* gcc.target/i386/avx-vpminsw-1.c: Likewise.
* gcc.target/i386/avx-vpminub-1.c: Likewise.
* gcc.target/i386/avx-vpminud-1.c: Likewise.
* gcc.target/i386/avx-vpminuw-1.c: Likewise.
* gcc.target/i386/avx-vpmovmskb-1.c: Likewise.
* gcc.target/i386/avx-vpmovsxbd-1.c: Likewise.
* gcc.target/i386/avx-vpmovsxbq-1.c: Likewise.
* gcc.target/i386/avx-vpmovsxbw-1.c: Likewise.
* gcc.target/i386/avx-vpmovsxdq-1.c: Likewise.
* gcc.target/i386/avx-vpmovsxwd-1.c: Likewise.
* gcc.target/i386/avx-vpmovsxwq-1.c: Likewise.
* gcc.target/i386/avx-vpmovzxbd-1.c: Likewise.
* gcc.target/i386/avx-vpmovzxbq-1.c: Likewise.
* gcc.target/i386/avx-vpmovzxbw-1.c: Likewise.
* gcc.target/i386/avx-vpmovzxdq-1.c: Likewise.
* gcc.target/i386/avx-vpmovzxwd-1.c: Likewise.
* gcc.target/i386/avx-vpmovzxwq-1.c: Likewise.
* gcc.target/i386/avx-vpmuldq-1.c: Likewise.
* gcc.target/i386/avx-vpmulhrsw-1.c: Likewise.
* gcc.target/i386/avx-vpmulhuw-1.c: Likewise.
* gcc.target/i386/avx-vpmulhw-1.c: Likewise.
* gcc.target/i386/avx-vpmulld-1.c: Likewise.
* gcc.target/i386/avx-vpmullw-1.c: Likewise.
* gcc.target/i386/avx-vpmuludq-1.c: Likewise.
* gcc.target/i386/avx-vpor-1.c: Likewise.
* gcc.target/i386/avx-vpsadbw-1.c: Likewise.
* gcc.target/i386/avx-vpshufb-1.c: Likewise.
* gcc.target/i386/avx-vpshufd-1.c: Likewise.
* gcc.target/i386/avx-vpshufhw-1.c: Likewise.
* gcc.target/i386/avx-vpshuflw-1.c: Likewise.
* gcc.target/i386/avx-vpsignb-1.c: Likewise.
* gcc.target/i386/avx-vpsignd-1.c: Likewise.
* gcc.target/i386/avx-vpsignw-1.c: Likewise.
* gcc.target/i386/avx-vpslld-1.c: Likewise.
* gcc.target/i386/avx-vpslld-2.c: Likewise.
* gcc.target/i386/avx-vpslldq-1.c: Likewise.
* gcc.target/i386/avx-vpsllq-1.c: Likewise.
* gcc.target/i386/avx-vpsllq-2.c: Likewise.
* gcc.target/i386/avx-vpsllw-1.c: Likewise.
* gcc.target/i386/avx-vpsllw-2.c: Likewise.
* gcc.target/i386/avx-vpsrad-1.c: Likewise.
* gcc.target/i386/avx-vpsrad-2.c: Likewise.
* gcc.target/i386/avx-vpsraw-1.c: Likewise.
* gcc.target/i386/avx-vpsraw-2.c: Likewise.
* gcc.target/i386/avx-vpsrld-1.c: Likewise.
* gcc.target/i386/avx-vpsrld-2.c: Likewise.
* gcc.target/i386/avx-vpsrldq-1.c: Likewise.
* gcc.target/i386/avx-vpsrlq-1.c: Likewise.
* gcc.target/i386/avx-vpsrlq-2.c: Likewise.
* gcc.target/i386/avx-vpsrlw-1.c: Likewise.
* gcc.target/i386/avx-vpsrlw-2.c: Likewise.
* gcc.target/i386/avx-vpsubb-1.c: Likewise.
* gcc.target/i386/avx-vpsubd-1.c: Likewise.
* gcc.target/i386/avx-vpsubq-1.c: Likewise.
* gcc.target/i386/avx-vpsubsb-1.c: Likewise.
* gcc.target/i386/avx-vpsubsw-1.c: Likewise.
* gcc.target/i386/avx-vpsubw-1.c: Likewise.
* gcc.target/i386/avx-vptest-1.c: Likewise.
* gcc.target/i386/avx-vptest-256-1.c: Likewise.
* gcc.target/i386/avx-vptest-256-2.c: Likewise.
* gcc.target/i386/avx-vptest-256-3.c: Likewise.
* gcc.target/i386/avx-vptest-2.c: Likewise.
* gcc.target/i386/avx-vptest-3.c: Likewise.
* gcc.target/i386/avx-vpunpckhbw-1.c: Likewise.
* gcc.target/i386/avx-vpunpckhdq-1.c: Likewise.
* gcc.target/i386/avx-vpunpckhqdq-1.c: Likewise.
* gcc.target/i386/avx-vpunpckhwd-1.c: Likewise.
* gcc.target/i386/avx-vpunpcklbw-1.c: Likewise.
* gcc.target/i386/avx-vpunpckldq-1.c: Likewise.
* gcc.target/i386/avx-vpunpcklqdq-1.c: Likewise.
* gcc.target/i386/avx-vpunpcklwd-1.c: Likewise.
* gcc.target/i386/avx-vpxor-1.c: Likewise.
* gcc.target/i386/avx-vrcpps-1.c: Likewise.
* gcc.target/i386/avx-vrcpps-256-1.c: Likewise.
* gcc.target/i386/avx-vroundpd-1.c: Likewise.
* gcc.target/i386/avx-vroundpd-256-1.c: Likewise.
* gcc.target/i386/avx-vroundpd-256-2.c: Likewise.
* gcc.target/i386/avx-vroundpd-256-3.c: Likewise.
* gcc.target/i386/avx-vroundpd-2.c: Likewise.
* gcc.target/i386/avx-vroundpd-3.c: Likewise.
* gcc.target/i386/avx-vroundps-256-1.c: Likewise.
* gcc.target/i386/avx-vrsqrtps-1.c: Likewise.
* gcc.target/i386/avx-vrsqrtps-256-1.c: Likewise.
* gcc.target/i386/avx-vshufpd-1.c: Likewise.
* gcc.target/i386/avx-vshufpd-256-1.c: Likewise.
* gcc.target/i386/avx-vshufps-1.c: Likewise.
* gcc.target/i386/avx-vshufps-256-1.c: Likewise.
* gcc.target/i386/avx-vsqrtpd-1.c: Likewise.
* gcc.target/i386/avx-vsqrtpd-256-1.c: Likewise.
* gcc.target/i386/avx-vsqrtps-1.c: Likewise.
* gcc.target/i386/avx-vsqrtps-256-1.c: Likewise.
* gcc.target/i386/avx-vsubpd-1.c: Likewise.
* gcc.target/i386/avx-vsubpd-256-1.c: Likewise.
* gcc.target/i386/avx-vsubps-1.c: Likewise.
* gcc.target/i386/avx-vsubps-256-1.c: Likewise.
* gcc.target/i386/avx-vsubsd-1.c: Likewise.
* gcc.target/i386/avx-vsubss-1.c: Likewise.
* gcc.target/i386/avx-vtestpd-1.c: Likewise.
* gcc.target/i386/avx-vtestpd-256-1.c: Likewise.
* gcc.target/i386/avx-vtestpd-256-2.c: Likewise.
* gcc.target/i386/avx-vtestpd-256-3.c: Likewise.
* gcc.target/i386/avx-vtestpd-2.c: Likewise.
* gcc.target/i386/avx-vtestpd-3.c: Likewise.
* gcc.target/i386/avx-vtestps-1.c: Likewise.
* gcc.target/i386/avx-vtestps-256-1.c: Likewise.
* gcc.target/i386/avx-vtestps-256-2.c: Likewise.
* gcc.target/i386/avx-vtestps-256-3.c: Likewise.
* gcc.target/i386/avx-vtestps-2.c: Likewise.
* gcc.target/i386/avx-vtestps-3.c: Likewise.
* gcc.target/i386/avx-vucomisd-1.c: Likewise.
* gcc.target/i386/avx-vucomisd-2.c: Likewise.
* gcc.target/i386/avx-vucomisd-3.c: Likewise.
* gcc.target/i386/avx-vucomisd-4.c: Likewise.
* gcc.target/i386/avx-vucomisd-5.c: Likewise.
* gcc.target/i386/avx-vucomisd-6.c: Likewise.
* gcc.target/i386/avx-vucomiss-1.c: Likewise.
* gcc.target/i386/avx-vucomiss-2.c: Likewise.
* gcc.target/i386/avx-vucomiss-3.c: Likewise.
* gcc.target/i386/avx-vucomiss-4.c: Likewise.
* gcc.target/i386/avx-vucomiss-5.c: Likewise.
* gcc.target/i386/avx-vucomiss-6.c: Likewise.
* gcc.target/i386/avx-vunpckhpd-1.c: Likewise.
* gcc.target/i386/avx-vunpckhpd-256-1.c: Likewise.
* gcc.target/i386/avx-vunpckhps-1.c: Likewise.
* gcc.target/i386/avx-vunpckhps-256-1.c: Likewise.
* gcc.target/i386/avx-vunpcklpd-1.c: Likewise.
* gcc.target/i386/avx-vunpcklpd-256-1.c: Likewise.
* gcc.target/i386/avx-vunpcklps-1.c: Likewise.
* gcc.target/i386/avx-vunpcklps-256-1.c: Likewise.
* gcc.target/i386/avx-vxorpd-1.c: Likewise.
* gcc.target/i386/avx-vxorpd-256-1.c: Likewise.
* gcc.target/i386/avx-vxorps-1.c: Likewise.
* gcc.target/i386/avx-vxorps-256-1.c: Likewise.
* gcc.target/i386/avx-vzeroall-1.c: Likewise.
* gcc.target/i386/avx-vzeroall-2.c: Likewise.
* gcc.target/i386/avx-vzeroupper-1.c: Likewise.
* gcc.target/i386/avx-vzeroupper-2.c: Likewise.
* gcc.target/i386/m256-1.c: Likewise.
* gcc.target/i386/m256-2.c: Likewise.
* gcc.target/i386/m256-check.h: Likewise.
* gcc.target/i386/sse2-addpd-1.c: Likewise.
* gcc.target/i386/sse2-addsd-1.c: Likewise.
* gcc.target/i386/sse2-andnpd-1.c: Likewise.
* gcc.target/i386/sse2-andpd-1.c: Likewise.
* gcc.target/i386/sse2-comisd-1.c: Likewise.
* gcc.target/i386/sse2-comisd-2.c: Likewise.
* gcc.target/i386/sse2-comisd-3.c: Likewise.
* gcc.target/i386/sse2-comisd-4.c: Likewise.
* gcc.target/i386/sse2-comisd-5.c: Likewise.
* gcc.target/i386/sse2-comisd-6.c: Likewise.
* gcc.target/i386/sse2-cvtdq2pd-1.c: Likewise.
* gcc.target/i386/sse2-cvtdq2ps-1.c: Likewise.
* gcc.target/i386/sse2-cvtpd2dq-1.c: Likewise.
* gcc.target/i386/sse2-cvtpd2ps-1.c: Likewise.
* gcc.target/i386/sse2-cvtps2dq-1.c: Likewise.
* gcc.target/i386/sse2-cvtps2pd-1.c: Likewise.
* gcc.target/i386/sse2-cvtsd2si-1.c: Likewise.
* gcc.target/i386/sse2-cvtsd2si-2.c: Likewise.
* gcc.target/i386/sse2-cvtsd2ss-1.c: Likewise.
* gcc.target/i386/sse2-cvtsi2sd-1.c: Likewise.
* gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise.
* gcc.target/i386/sse2-cvtss2sd-1.c: Likewise.
* gcc.target/i386/sse2-cvttpd2dq-1.c: Likewise.
* gcc.target/i386/sse2-cvttps2dq-1.c: Likewise.
* gcc.target/i386/sse2-cvttsd2si-1.c: Likewise.
* gcc.target/i386/sse2-cvttsd2si-2.c: Likewise.
* gcc.target/i386/sse2-divpd-1.c: Likewise.
* gcc.target/i386/sse2-divsd-1.c: Likewise.
* gcc.target/i386/sse2-maxpd-1.c: Likewise.
* gcc.target/i386/sse2-maxsd-1.c: Likewise.
* gcc.target/i386/sse2-minpd-1.c: Likewise.
* gcc.target/i386/sse2-minsd-1.c: Likewise.
* gcc.target/i386/sse2-movapd-1.c: Likewise.
* gcc.target/i386/sse2-movapd-2.c: Likewise.
* gcc.target/i386/sse2-movd-1.c: Likewise.
* gcc.target/i386/sse2-movd-2.c: Likewise.
* gcc.target/i386/sse2-movdqa-1.c: Likewise.
* gcc.target/i386/sse2-movdqa-2.c: Likewise.
* gcc.target/i386/sse2-movdqu-1.c: Likewise.
* gcc.target/i386/sse2-movdqu-2.c: Likewise.
* gcc.target/i386/sse2-movhpd-1.c: Likewise.
* gcc.target/i386/sse2-movhpd-2.c: Likewise.
* gcc.target/i386/sse2-movlpd-1.c: Likewise.
* gcc.target/i386/sse2-movlpd-2.c: Likewise.
* gcc.target/i386/sse2-movmskpd-1.c: Likewise.
* gcc.target/i386/sse2-movntdq-1.c: Likewise.
* gcc.target/i386/sse2-movntpd-1.c: Likewise.
* gcc.target/i386/sse2-movq-1.c: Likewise.
* gcc.target/i386/sse2-movq-2.c: Likewise.
* gcc.target/i386/sse2-movq-3.c: Likewise.
* gcc.target/i386/sse2-movsd-1.c: Likewise.
* gcc.target/i386/sse2-movsd-2.c: Likewise.
* gcc.target/i386/sse2-movupd-1.c: Likewise.
* gcc.target/i386/sse2-movupd-2.c: Likewise.
* gcc.target/i386/sse2-mulpd-1.c: Likewise.
* gcc.target/i386/sse2-mulsd-1.c: Likewise.
* gcc.target/i386/sse2-orpd-1.c: Likewise.
* gcc.target/i386/sse2-packssdw-1.c: Likewise.
* gcc.target/i386/sse2-packsswb-1.c: Likewise.
* gcc.target/i386/sse2-packuswb-1.c: Likewise.
* gcc.target/i386/sse2-paddb-1.c: Likewise.
* gcc.target/i386/sse2-paddd-1.c: Likewise.
* gcc.target/i386/sse2-paddq-1.c: Likewise.
* gcc.target/i386/sse2-paddsb-1.c: Likewise.
* gcc.target/i386/sse2-paddsw-1.c: Likewise.
* gcc.target/i386/sse2-paddusb-1.c: Likewise.
* gcc.target/i386/sse2-paddusw-1.c: Likewise.
* gcc.target/i386/sse2-paddw-1.c: Likewise.
* gcc.target/i386/sse2-pand-1.c: Likewise.
* gcc.target/i386/sse2-pandn-1.c: Likewise.
* gcc.target/i386/sse2-pavgb-1.c: Likewise.
* gcc.target/i386/sse2-pavgw-1.c: Likewise.
* gcc.target/i386/sse2-pcmpeqb-1.c: Likewise.
* gcc.target/i386/sse2-pcmpeqd-1.c: Likewise.
* gcc.target/i386/sse2-pcmpeqw-1.c: Likewise.
* gcc.target/i386/sse2-pcmpgtb-1.c: Likewise.
* gcc.target/i386/sse2-pcmpgtd-1.c: Likewise.
* gcc.target/i386/sse2-pcmpgtw-1.c: Likewise.
* gcc.target/i386/sse2-pmaddwd-1.c: Likewise.
* gcc.target/i386/sse2-pmaxsw-1.c: Likewise.
* gcc.target/i386/sse2-pmaxub-1.c: Likewise.
* gcc.target/i386/sse2-pminsw-1.c: Likewise.
* gcc.target/i386/sse2-pminub-1.c: Likewise.
* gcc.target/i386/sse2-pmovmskb-1.c: Likewise.
* gcc.target/i386/sse2-pmulhuw-1.c: Likewise.
* gcc.target/i386/sse2-pmulhw-1.c: Likewise.
* gcc.target/i386/sse2-pmullw-1.c: Likewise.
* gcc.target/i386/sse2-pmuludq-1.c: Likewise.
* gcc.target/i386/sse2-por-1.c: Likewise.
* gcc.target/i386/sse2-psadbw-1.c: Likewise.
* gcc.target/i386/sse2-pshufd-1.c: Likewise.
* gcc.target/i386/sse2-pshufhw-1.c: Likewise.
* gcc.target/i386/sse2-pshuflw-1.c: Likewise.
* gcc.target/i386/sse2-pslld-1.c: Likewise.
* gcc.target/i386/sse2-pslld-2.c: Likewise.
* gcc.target/i386/sse2-pslldq-1.c: Likewise.
* gcc.target/i386/sse2-psllq-1.c: Likewise.
* gcc.target/i386/sse2-psllq-2.c: Likewise.
* gcc.target/i386/sse2-psllw-1.c: Likewise.
* gcc.target/i386/sse2-psllw-2.c: Likewise.
* gcc.target/i386/sse2-psrad-1.c: Likewise.
* gcc.target/i386/sse2-psrad-2.c: Likewise.
* gcc.target/i386/sse2-psraw-1.c: Likewise.
* gcc.target/i386/sse2-psraw-2.c: Likewise.
* gcc.target/i386/sse2-psrld-1.c: Likewise.
* gcc.target/i386/sse2-psrld-2.c: Likewise.
* gcc.target/i386/sse2-psrldq-1.c: Likewise.
* gcc.target/i386/sse2-psrlq-1.c: Likewise.
* gcc.target/i386/sse2-psrlq-2.c: Likewise.
* gcc.target/i386/sse2-psrlw-1.c: Likewise.
* gcc.target/i386/sse2-psrlw-2.c: Likewise.
* gcc.target/i386/sse2-psubb-1.c: Likewise.
* gcc.target/i386/sse2-psubd-1.c: Likewise.
* gcc.target/i386/sse2-psubq-1.c: Likewise.
* gcc.target/i386/sse2-psubsb-1.c: Likewise.
* gcc.target/i386/sse2-psubsw-1.c: Likewise.
* gcc.target/i386/sse2-psubw-1.c: Likewise.
* gcc.target/i386/sse2-punpckhbw-1.c: Likewise.
* gcc.target/i386/sse2-punpckhdq-1.c: Likewise.
* gcc.target/i386/sse2-punpckhqdq-1.c: Likewise.
* gcc.target/i386/sse2-punpckhwd-1.c: Likewise.
* gcc.target/i386/sse2-punpcklbw-1.c: Likewise.
* gcc.target/i386/sse2-punpckldq-1.c: Likewise.
* gcc.target/i386/sse2-punpcklqdq-1.c: Likewise.
* gcc.target/i386/sse2-punpcklwd-1.c: Likewise.
* gcc.target/i386/sse2-pxor-1.c: Likewise.
* gcc.target/i386/sse2-shufpd-1.c: Likewise.
* gcc.target/i386/sse2-shufps-1.c: Likewise.
* gcc.target/i386/sse2-sqrtpd-1.c: Likewise.
* gcc.target/i386/sse2-subpd-1.c: Likewise.
* gcc.target/i386/sse2-subsd-1.c: Likewise.
* gcc.target/i386/sse2-ucomisd-1.c: Likewise.
* gcc.target/i386/sse2-ucomisd-2.c: Likewise.
* gcc.target/i386/sse2-ucomisd-3.c: Likewise.
* gcc.target/i386/sse2-ucomisd-4.c: Likewise.
* gcc.target/i386/sse2-ucomisd-5.c: Likewise.
* gcc.target/i386/sse2-ucomisd-6.c: Likewise.
* gcc.target/i386/sse2-unpckhpd-1.c: Likewise.
* gcc.target/i386/sse2-unpcklpd-1.c: Likewise.
* gcc.target/i386/sse2-xorpd-1.c: Likewise.
* gcc.target/i386/sse-addps-1.c: Likewise.
* gcc.target/i386/sse-addss-1.c: Likewise.
* gcc.target/i386/sse-andnps-1.c: Likewise.
* gcc.target/i386/sse-andps-1.c: Likewise.
* gcc.target/i386/sse-comiss-1.c: Likewise.
* gcc.target/i386/sse-comiss-2.c: Likewise.
* gcc.target/i386/sse-comiss-3.c: Likewise.
* gcc.target/i386/sse-comiss-4.c: Likewise.
* gcc.target/i386/sse-comiss-5.c: Likewise.
* gcc.target/i386/sse-comiss-6.c: Likewise.
* gcc.target/i386/sse-cvtsi2ss-1.c: Likewise.
* gcc.target/i386/sse-cvtsi2ss-2.c: Likewise.
* gcc.target/i386/sse-cvtss2si-1.c: Likewise.
* gcc.target/i386/sse-cvtss2si-2.c: Likewise.
* gcc.target/i386/sse-cvttss2si-1.c: Likewise.
* gcc.target/i386/sse-cvttss2si-2.c: Likewise.
* gcc.target/i386/sse-divps-1.c: Likewise.
* gcc.target/i386/sse-divss-1.c: Likewise.
* gcc.target/i386/sse-maxps-1.c: Likewise.
* gcc.target/i386/sse-maxss-1.c: Likewise.
* gcc.target/i386/sse-minps-1.c: Likewise.
* gcc.target/i386/sse-minss-1.c: Likewise.
* gcc.target/i386/sse-movaps-1.c: Likewise.
* gcc.target/i386/sse-movaps-2.c: Likewise.
* gcc.target/i386/sse-movhlps-1.c: Likewise.
* gcc.target/i386/sse-movhps-1.c: Likewise.
* gcc.target/i386/sse-movhps-2.c: Likewise.
* gcc.target/i386/sse-movlhps-1.c: Likewise.
* gcc.target/i386/sse-movmskps-1.c: Likewise.
* gcc.target/i386/sse-movntps-1.c: Likewise.
* gcc.target/i386/sse-movss-1.c: Likewise.
* gcc.target/i386/sse-movss-2.c: Likewise.
* gcc.target/i386/sse-movss-3.c: Likewise.
* gcc.target/i386/sse-movups-1.c: Likewise.
* gcc.target/i386/sse-movups-2.c: Likewise.
* gcc.target/i386/sse-mulps-1.c: Likewise.
* gcc.target/i386/sse-mulss-1.c: Likewise.
* gcc.target/i386/sse-orps-1.c: Likewise.
* gcc.target/i386/sse-rcpps-1.c: Likewise.
* gcc.target/i386/sse-rsqrtps-1.c: Likewise.
* gcc.target/i386/sse-sqrtps-1.c: Likewise.
* gcc.target/i386/sse-subps-1.c: Likewise.
* gcc.target/i386/sse-subss-1.c: Likewise.
* gcc.target/i386/sse-ucomiss-1.c: Likewise.
* gcc.target/i386/sse-ucomiss-2.c: Likewise.
* gcc.target/i386/sse-ucomiss-3.c: Likewise.
* gcc.target/i386/sse-ucomiss-4.c: Likewise.
* gcc.target/i386/sse-ucomiss-5.c: Likewise.
* gcc.target/i386/sse-ucomiss-6.c: Likewise.
* gcc.target/i386/sse-unpckhps-1.c: Likewise.
* gcc.target/i386/sse-unpcklps-1.c: Likewise.
* gcc.target/i386/sse-xorps-1.c: Likewise.
* gcc.target/i386/vararg-10.c: Likewise.
* gcc.target/i386/vararg-3.c: Likewise.
* gcc.target/i386/vararg-4.c: Likewise.
* gcc.target/i386/vararg-5.c: Likewise.
* gcc.target/i386/vararg-6.c: Likewise.
* gcc.target/i386/vararg-7.c: Likewise.
* gcc.target/i386/vararg-8.c: Likewise.
* gcc.target/i386/vararg-9.c: Likewise.
* g++.dg/other/i386-5.C: Likewise.
* g++.dg/other/i386-6.C: Likewise.
* gcc.target/i386/aesdec.c (CHECK_H): New.
(TEST): New.
Include CHECK_H instead of "XXX-check.h" and run TEST
instead of XXX_test.
* gcc.target/i386/aesdeclast.c: Likewise.
* gcc.target/i386/aesenc.c: Likewise.
* gcc.target/i386/aesenclast.c: Likewise.
* gcc.target/i386/aesimc.c: Likewise.
* gcc.target/i386/aeskeygenassist.c: Likewise.
* gcc.target/i386/sse3-addsubpd.c: Likewise.
* gcc.target/i386/sse3-addsubps.c: Likewise.
* gcc.target/i386/sse3-haddpd.c: Likewise.
* gcc.target/i386/sse3-haddps.c: Likewise.
* gcc.target/i386/sse3-hsubpd.c: Likewise.
* gcc.target/i386/sse3-hsubps.c: Likewise.
* gcc.target/i386/sse3-lddqu.c: Likewise.
* gcc.target/i386/sse3-movddup.c: Likewise.
* gcc.target/i386/sse3-movshdup.c: Likewise.
* gcc.target/i386/sse3-movsldup.c: Likewise.
* gcc.target/i386/sse4_1-blendpd.c: Likewise.
* gcc.target/i386/sse4_1-blendps.c: Likewise.
* gcc.target/i386/sse4_1-dppd-1.c: Likewise.
* gcc.target/i386/sse4_1-dppd-2.c: Likewise.
* gcc.target/i386/sse4_1-dpps-1.c: Likewise.
* gcc.target/i386/sse4_1-dpps-2.c: Likewise.
* gcc.target/i386/sse4_1-extractps.c: Likewise.
* gcc.target/i386/sse4_1-insertps-1.c: Likewise.
* gcc.target/i386/sse4_1-insertps-2.c: Likewise.
* gcc.target/i386/sse4_1-movntdqa.c: Likewise.
* gcc.target/i386/sse4_1-mpsadbw.c: Likewise.
* gcc.target/i386/sse4_1-packusdw.c: Likewise.
* gcc.target/i386/sse4_1-pblendvb.c: Likewise.
* gcc.target/i386/sse4_1-pblendw.c: Likewise.
* gcc.target/i386/sse4_1-pcmpeqq.c: Likewise.
* gcc.target/i386/sse4_1-pextrb.c: Likewise.
* gcc.target/i386/sse4_1-pextrd.c: Likewise.
* gcc.target/i386/sse4_1-pextrq.c: Likewise.
* gcc.target/i386/sse4_1-pextrw.c: Likewise.
* gcc.target/i386/sse4_1-phminposuw.c: Likewise.
* gcc.target/i386/sse4_1-pinsrb.c: Likewise.
* gcc.target/i386/sse4_1-pinsrd.c: Likewise.
* gcc.target/i386/sse4_1-pinsrq.c: Likewise.
* gcc.target/i386/sse4_1-pmaxsb.c: Likewise.
* gcc.target/i386/sse4_1-pmaxsd.c: Likewise.
* gcc.target/i386/sse4_1-pmaxud.c: Likewise.
* gcc.target/i386/sse4_1-pmaxuw.c: Likewise.
* gcc.target/i386/sse4_1-pminsb.c: Likewise.
* gcc.target/i386/sse4_1-pminsd.c: Likewise.
* gcc.target/i386/sse4_1-pminud.c: Likewise.
* gcc.target/i386/sse4_1-pminuw.c: Likewise.
* gcc.target/i386/sse4_1-pmovsxbd.c: Likewise.
* gcc.target/i386/sse4_1-pmovsxbq.c: Likewise.
* gcc.target/i386/sse4_1-pmovsxbw.c: Likewise.
* gcc.target/i386/sse4_1-pmovsxdq.c: Likewise.
* gcc.target/i386/sse4_1-pmovsxwd.c: Likewise.
* gcc.target/i386/sse4_1-pmovsxwq.c: Likewise.
* gcc.target/i386/sse4_1-pmovzxbd.c: Likewise.
* gcc.target/i386/sse4_1-pmovzxbq.c: Likewise.
* gcc.target/i386/sse4_1-pmovzxbw.c: Likewise.
* gcc.target/i386/sse4_1-pmovzxdq.c: Likewise.
* gcc.target/i386/sse4_1-pmovzxwd.c: Likewise.
* gcc.target/i386/sse4_1-pmovzxwq.c: Likewise.
* gcc.target/i386/sse4_1-pmuldq.c: Likewise.
* gcc.target/i386/sse4_1-pmulld.c: Likewise.
* gcc.target/i386/sse4_1-ptest-1.c: Likewise.
* gcc.target/i386/sse4_1-ptest-2.c: Likewise.
* gcc.target/i386/sse4_1-ptest-3.c: Likewise.
* gcc.target/i386/sse4_1-roundpd-1.c: Likewise.
* gcc.target/i386/sse4_1-roundpd-2.c: Likewise.
* gcc.target/i386/sse4_1-roundpd-3.c: Likewise.
* gcc.target/i386/sse4_2-pcmpestri-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpgtq.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
* gcc.target/i386/ssse3-pabsb.c: Likewise. Don't run MMX
tests for AVX.
* gcc.target/i386/ssse3-pabsd.c: Likewise.
* gcc.target/i386/ssse3-pabsw.c: Likewise.
* gcc.target/i386/ssse3-palignr.c: Likewise.
* gcc.target/i386/ssse3-phaddd.c: Likewise.
* gcc.target/i386/ssse3-phaddsw.c: Likewise.
* gcc.target/i386/ssse3-phaddw.c: Likewise.
* gcc.target/i386/ssse3-phsubd.c: Likewise.
* gcc.target/i386/ssse3-phsubsw.c: Likewise.
* gcc.target/i386/ssse3-phsubw.c: Likewise.
* gcc.target/i386/ssse3-pmaddubsw.c: Likewise.
* gcc.target/i386/ssse3-pmulhrsw.c: Likewise.
* gcc.target/i386/ssse3-pshufb.c: Likewise.
* gcc.target/i386/ssse3-psignb.c: Likewise.
* gcc.target/i386/ssse3-psignd.c: Likewise.
* gcc.target/i386/ssse3-psignw.c: Likewise.
* gcc.target/i386/i386.exp (check_effective_target_vaes): New.
* gcc.target/i386/m128-check.h: Include <xmmintrin.h>. Include
<emmintrin.h> for SSE2.
(union128i_b): Defined only for SSE2.
(union128i_w): Likewise.
(union128i_d): Likewise.
(union128i_q): Likewise.
(union128d): Likewise.
(check_union128i_b): Likewise.
(check_union128i_w): Likewise.
(check_union128i_d): Likewise.
(check_union128i_q): Likewise.
(check_union128d): Likewise.
(union128i_ub): New.
(union128i_uw): Likewise.
(check_union128i_ub): Likewise.
(check_union128i_uw): Likewise.
(ESP_FLOAT): Likewise.
(ESP_DOUBLE): Likewise.
(CHECK_ARRAY): Likewise.
(checkVd): Likewise.
(checkVf): Likewise.
(ieee754_float): Likewise.
(ieee754_double): Likewise.
* gcc.target/i386/sse-check.h: Include "m128-check.h".
* gcc.target/x86_64/abi/abi-x86_64.exp: Replace asm-support.s
with asm-support.S.
* gcc.target/x86_64/abi/asm-support.s: Renamed to ...
* gcc.target/x86_64/abi/asm-support.S: This. Add
".sse_check none" if __AVX__ is defined.
* lib/target-supports.exp (check_effective_target_avx): New.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
Co-Authored-By: Joey Ye <joey.ye@intel.com>
From-SVN: r139730
Manuel López-Ibáñez [Thu, 28 Aug 2008 19:34:36 +0000 (19:34 +0000)]
re PR c/30949 ("incompatible pointer type" warning does not point to declaration)
2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c/30949
* c-typeck.c (convert_for_assignment): Give a note describing what
was passed and what was expected.
testsuite/
* gcc.dg/pr30949.c: New.
* gcc.dg/transparent-union-1.c: Update.
* gcc.dg/cleanup-1.c: Update.
* gcc.dg/assign-warn-2.c: Update.
* gcc.dg/conv-2.c: Update.
* gcc.dg/Wpointer-sign-pedantic.c: Update.
* gcc.dg/Wpointer-sign-Wall.c: Update.
* gcc.dg/assign-warn-1.c: Update.
* gcc.dg/dfp/composite-type.c: Update.
* gcc.dg/noncompile/
20020213-1.c: Update.
From-SVN: r139729
Joey Ye [Thu, 28 Aug 2008 19:20:03 +0000 (19:20 +0000)]
extend.texi: Document AVX built-in functions.
2008-08-28 Joey Ye <joey.ye@intel.com>
* doc/extend.texi: Document AVX built-in functions.
* doc/invoke.texi: Document -mavx.
From-SVN: r139727
H.J. Lu [Thu, 28 Aug 2008 19:18:44 +0000 (12:18 -0700)]
[multiple changes]
2008-08-28 H.J. Lu <hongjiu.lu@intel.com>
Joey Ye <joey.ye@intel.com>
Xuepeng Guo <xuepeng.guo@intel.com>
* config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
* config/i386/cpuid.h (bit_FMA): New.
(bit_XSAVE): Likewise.
(bit_OSXSAVE): Likewise.
(bit_AVX): Likewise.
* config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
define. Use ASM_OUTPUT_AVX_PREFIX.
* config/i386/gmmintrin.h: New.
* config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
(OPTION_MASK_ISA_AVX_SET): New.
(OPTION_MASK_ISA_FMA_SET): Likewise.
(OPTION_MASK_ISA_AVX_UNSET): Likewise.
(OPTION_MASK_ISA_FMA_SET): Likewise.
(OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
(ix86_handle_option): Handle OPT_mavx and OPT_mfma.
(pta_flags): Add PTA_AVX and PTA_FMA.
(override_options): Handle PTA_AVX and PTA_FMA.
(init_cumulative_args): Handle warn_avx.
(classify_argument): Return 0 for COImode and OImode. Return
1 and X86_64_AVX_CLASS for 256bit vector types.
(examine_argument): Handle X86_64_AVX_CLASS.
(construct_container): Likewise.
(function_arg_advance_32): Pass OImode and 256bit vector types
in AVX register.
(function_arg_advance_64): Take a new argument to indicate if a
parameter is named. Handle 256bit vector types. Return
immediately for unnamed 256bit vector mode parameters.
(function_arg_advance): Updated.
(function_arg_32): Add comments for TImode. Handle OImode
and 256bit vector types.
(function_arg_64): Take a new argument to indicate if a
parameter is named. Handle 256bit vector types. Return NULL
for unnamed 256bit vector mode parameters.
(function_arg): Updated.
(setup_incoming_varargs_64): Support
AVX encoding for *sse_prologue_save_insn.
(ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
(standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
enabled. For all 1s in 256bit vector modes, return 3 if AVX is
enabled, otherwise return -3.
(standard_sse_constant_opcode): Handle AVX and 256bit vector
modes.
(print_reg): Support AVX registers. Handle 'x' and 't'.
Handle 'd' to duplicate the operand.
(print_operand): Likewise. Also support AVX vector compare
instructions.
(output_387_binary_op): Support AVX.
(output_fp_compare): Likewise.
(ix86_expand_vector_move_misalign): Likewise.
(ix86_attr_length_vex_default): New.
(ix86_builtins): Add IX86_BUILTIN_ADDPD256,
IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
and IX86_BUILTIN_MOVMSKPS256,
(ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
(ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
(bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
(ix86_builtins): Add IX86_BUILTIN_ADDPD256,
IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
IX86_BUILTIN_CMPPS,
IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
IX86_BUILTIN_MOVMSKPS256.
(ix86_init_mmx_sse_builtins): Support AVX builtins.
(ix86_expand_args_builtin): Likewise.
(ix86_expand_special_args_builtin): Likewise.
(ix86_hard_regno_mode_ok): Handle AVX modes.
(ix86_expand_vector_init_duplicate): Likewise.
(ix86_expand_vector_init_one_nonzero): Likewise.
(ix86_expand_vector_init_one_var): Likewise.
(ix86_expand_vector_init_concat): Likewise.
(ix86_expand_vector_init_general): Likewise.
(ix86_expand_vector_set): Likewise.
(ix86_vector_mode_supported_p): Likewise.
(x86_extended_reg_mentioned_p): Check INSN_P before using
PATTERN.
* config/i386/i386-c.c (ix86_target_macros_internal): Handle
OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
* config/i386/i386.h (TARGET_AVX): New.
(TARGET_FMA): Likewise.
(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
(BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
(VALID_AVX256_REG_MODE): New.
(AVX256_VEC_FLOAT_MODE_P): Likewise.
(AVX_FLOAT_MODE_P): Likewise.
(AVX128_VEC_FLOAT_MODE_P): Likewise.
(AVX256_VEC_FLOAT_MODE_P): Likewise.
(AVX_VEC_FLOAT_MODE_P): Likewise.
(ASM_OUTPUT_AVX_PREFIX): Likewise.
(ASM_OUTPUT_OPCODE): Likewise.
(UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
support.
(SSE_REG_MODE_P): Allow 256bit vector modes.
(ix86_args): Add a warn_avx field.
* config/i386/i386.md (UNSPEC_PCMP): New.
(UNSPEC_VPERMIL): Likewise.
(UNSPEC_VPERMIL2): Likewise.
(UNSPEC_VPERMIL2F128): Likewise.
(UNSPEC_MASKLOAD): Likewise.
(UNSPEC_MASKSTORE): Likewise.
(UNSPEC_CAST): Likewise.
(UNSPEC_VTESTP): Likewise.
(UNSPECV_VZEROALL): Likewise.
(UNSPECV_VZEROUPPER): Likewise.
(XMM0_REG): Likewise.
(XMM1_REG): Likewise.
(XMM2_REG): Likewise.
(XMM3_REG): Likewise.
(XMM4_REG): Likewise.
(XMM5_REG): Likewise.
(XMM6_REG): Likewise.
(XMM8_REG): Likewise.
(XMM9_REG): Likewise.
(XMM10_REG): Likewise.
(XMM11_REG): Likewise.
(XMM12_REG): Likewise.
(XMM13_REG): Likewise.
(XMM14_REG): Likewise.
(XMM15_REG): Likewise.
(prefix): Likewise.
(prefix_vex_imm8): Likewise.
(prefix_vex_w): Likewise.
(length_vex): Likewise.
(maxmin): Likewise.
(movoi): Likewise.
(*avx_ashlti3): Likewise.
(*avx_lshrti3): Likewise.
(*avx_setcc<mode>): Likewise.
(*fop_<mode>_comm_mixed_avx): Likewise.
(*fop_<mode>_comm_avx): Likewise.
(*fop_<mode>_1_mixed_avx): Likewise.
(*fop_<mode>_1_avx): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_ieee_smin<mode>3): Likewise.
(*avx_ieee_smax<mode>3): Likewise.
(mode): Add OI, V8SF and V4DF.
(length): Support VEX prefix.
(*cmpfp_i_mixed): Set prefix attribute.
(*cmpfp_i_sse): Likewise.
(*cmpfp_iu_mixed): Likewise.
(*cmpfp_iu_sse): Likewise.
(*movsi_1): Support AVX.
(*movdi_2): Likewise.
(*movdi_1_rex64): Likewise.
(*movti_internal): Likewise.
(*movti_rex64): Likewise.
(*movsf_1): Likewise.
(*movdf_nointeger): Likewise.
(*movdf_integer_rex64): Likewise.
(*movtf_internal): Likewise.
(zero_extendsidi2_32): Likewise.
(zero_extendsidi2_rex64): Likewise.
(*extendsfdf2_mixed): Likewise.
(*extendsfdf2_sse): Likewise.
(*truncdfsf_fast_mixed): Likewise.
(*truncdfsf_fast_sse): Likewise.
(*truncdfsf_mixed): Likewise.
(fix_trunc<mode>di_sse): Likewise.
(fix_trunc<mode>si_sse): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
(*rcpsf2_sse): Likewise.
(*rsqrtsf2_sse): Likewise.
(*sqrt<mode>2_sse): Likewise.
(sse4_1_round<mode>2): Likewise.
(*sse_prologue_save_insn): Disallow REX prefix for AVX.
Support AVX. Set length attribute properly for AVX.
* config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
(VECTOR_MODES (FLOAT, 32)): Likewise.
(VECTOR_MODE (INT, DI, 8)): Likewise.
(VECTOR_MODE (INT, HI, 32)): Likewise.
(VECTOR_MODE (INT, QI, 64)): Likewise.
(VECTOR_MODE (FLOAT, DF, 8)): Likewise.
(VECTOR_MODE (FLOAT, SF, 16)): Likewise.
(VECTOR_MODE (INT, DI, 4)): Removed.
(VECTOR_MODE (INT, SI, 8)): Likewise.
(VECTOR_MODE (INT, HI, 16)): Likewise.
(VECTOR_MODE (INT, QI, 32)): Likewise.
(VECTOR_MODE (FLOAT, SF, 8)): Likewise.
(INT_MODE (OI, 32)): Likewise.
* config/i386/i386.opt (mavx): New.
(mfma): Likewise.
* config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
* config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
(*mov<mode>_internal_avx): New.
(*movv2sf_internal_rex64_avx): Likewise.
(*movv2sf_internal_avx): Likewise.
* config/i386/predicates.md (const_4_to_5_operand): New.
(const_6_to_7_operand): Likewise.
(const_8_to_11_operand): Likewise.
(const_12_to_15_operand): Likewise.
(avx_comparison_float_operator): Likewise.
* config/i386/sse.md (AVX256MODEI): New.
(AVX256MODE): Likewise.
(AVXMODEQI): Likewise.
(AVXMODE): Likewise.
(AVX256MODEF2P): Likewise.
(AVX256MODE2P): Likewise.
(AVX256MODE4P): Likewise.
(AVX256MODE8P): Likewise.
(AVXMODEF2P): Likewise.
(AVXMODEF4P): Likewise.
(AVXMODEDCVTDQ2PS): Likewise.
(AVXMODEDCVTPS2DQ): Likewise.
(avxvecmode): Likewise.
(avxvecpsmode): Likewise.
(avxhalfvecmode): Likewise.
(avxscalarmode): Likewise.
(avxcvtvecmode): Likewise.
(avxpermvecmode): Likewise.
(avxmodesuffixf2c): Likewise.
(avxmodesuffixp): Likewise.
(avxmodesuffixs): Likewise.
(avxmodesuffix): Likewise.
(vpermilbits): Likewise.
(pinsrbits): Likewise.
(mov<mode>): Likewise.
(*mov<mode>_internal): Likewise.
(push<mode>1): Likewise.
(movmisalign<mode>): Likewise.
(avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_movdqu<avxmodesuffix>): Likewise.
(avx_lddqu<avxmodesuffix>): Likewise.
(<plusminus_insn><mode>3): Likewise.
(*avx_<plusminus_insn><mode>3): Likewise.
(*avx_vm<plusminus_insn><mode>3): Likewise.
(mul<mode>3): Likewise.
(*avx_mul<mode>3): Likewise.
(*avx_vmmul<mode>3): Likewise.
(divv8sf3): Likewise.
(divv4df3): Likewise.
(avx_div<mode>3): Likewise.
(*avx_div<mode>3): Likewise.
(*avx_vmdiv<mode>3): Likewise.
(avx_rcpv8sf2): Likewise.
(*avx_vmrcpv4sf2): Likewise.
(sqrtv8sf2): Likewise.
(avx_sqrtv8sf2): Likewise.
(*avx_vmsqrt<mode>2): Likewise.
(rsqrtv8sf2): Likewise.
(avx_rsqrtv8sf2): Likewise.
(*avx_vmrsqrtv4sf2): Likewise.
(<code><mode>3): Likewise.
(*avx_<code><mode>3_finite): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_vm<code><mode>3): Likewise.
(*avx_ieee_smin<mode>3): Likewise.
(*avx_ieee_smax<mode>3): Likewise.
(avx_addsubv8sf3): Likewise.
(avx_addsubv4df3): Likewise.
(*avx_addsubv4sf3): Likewise.
(*avx_addsubv2df3): Likewise.
(avx_h<plusminus_insn>v4df3): Likewise.
(avx_h<plusminus_insn>v8sf3): Likewise.
(*avx_h<plusminus_insn>v4sf3): Likewise.
(*avx_h<plusminus_insn>v2df3): Likewise.
(avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
(avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
(*avx_maskcmp<mode>3): Likewise.
(avx_nand<mode>3): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_nand<mode>3): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_cvtsi2ss): Likewise.
(*avx_cvtsi2ssq): Likewise.
(*avx_cvtsi2sd): Likewise.
(*avx_cvtsi2sdq): Likewise.
(*avx_cvtsd2ss): Likewise.
(avx_cvtss2sd): Likewise.
(avx_cvtdq2ps<avxmodesuffix>): Likewise.
(avx_cvtps2dq<avxmodesuffix>): Likewise.
(avx_cvttps2dq<avxmodesuffix>): Likewise.
(*avx_cvtsi2sd): Likewise.
(*avx_cvtsi2sdq): Likewise.
(avx_cvtdq2pd256): Likewise.
(avx_cvtpd2dq256): Likewise.
(avx_cvttpd2dq256): Likewise.
(*avx_cvtsd2ss): Likewise.
(*avx_cvtss2sd): Likewise.
(avx_cvtpd2ps256): Likewise.
(avx_cvtps2pd256): Likewise.
(*avx_movhlps): Likewise.
(*avx_movlhps): Likewise.
(avx_unpckhps256): Likewise.
(*avx_unpckhps): Likewise.
(avx_unpcklps256): Likewise.
(*avx_unpcklps): Likewise.
(avx_movshdup256): Likewise.
(avx_movsldup256): Likewise.
(avx_shufps256): Likewise.
(avx_shufps256_1): Likewise.
(*avx_shufps_<mode>): Likewise.
(*avx_loadhps): Likewise.
(*avx_storelps): Likewise.
(*avx_loadlps): Likewise.
(*avx_movss): Likewise.
(*vec_dupv4sf_avx): Likewise.
(*vec_concatv2sf_avx): Likewise.
(*vec_concatv4sf_avx): Likewise.
(*vec_setv4sf_0_avx): Likewise.
(*vec_setv4sf_avx): Likewise.
(*avx_insertps): Likewise.
(avx_vextractf128<mode>): Likewise.
(vec_extract_lo_<mode>): Likewise.
(vec_extract_hi_<mode>): Likewise.
(vec_extract_lo_<mode>): Likewise.
(vec_extract_hi_<mode>): Likewise.
(vec_extract_lo_v16hi): Likewise.
(vec_extract_hi_v16hi): Likewise.
(vec_extract_lo_v32qi): Likewise.
(vec_extract_hi_v32qi): Likewise.
(avx_unpckhpd256): Likewise.
(*avx_unpckhpd): Likewise.
(avx_movddup256): Likewise.
(*avx_movddup): Likewise.
(avx_unpcklpd256): Likewise.
(*avx_unpcklpd): Likewise.
(avx_shufpd256): Likewise.
(avx_shufpd256_1): Likewise.
(*avx_punpckhqdq): Likewise.
(*avx_punpcklqdq): Likewise.
(*avx_shufpd_<mode>): Likewise.
(*avx_storehpd): Likewise.
(*avx_loadhpd): Likewise.
(*avx_loadlpd): Likewise.
(*avx_movsd): Likewise.
(*vec_concatv2df_avx): Likewise.
(*avx_<plusminus_insn><mode>3): Likewise.
(*avx_<plusminus_insn><mode>3): Likewise.
(*avx_mulv8hi3): Likewise.
(*avxv8hi3_highpart): Likewise.
(*avx_umulv8hi3_highpart): Likewise.
(*avx_umulv2siv2di3): Likewise.
(*avx_mulv2siv2di3): Likewise.
(*avx_pmaddwd): Likewise.
(*avx_mulv4si3): Likewise.
(*avx_ashr<mode>3): Likewise.
(*avx_lshr<mode>3): Likewise.
(*avx_ashl<mode>3): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_eq<mode>3): Likewise.
(*avx_gt<mode>3): Likewise.
(*avx_nand<mode>3): Likewise.
(*avx_nand<mode>3): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_<code><mode>3): Likewise.
(*avx_packsswb): Likewise.
(*avx_packssdw): Likewise.
(*avx_packuswb): Likewise.
(*avx_punpckhbw): Likewise.
(*avx_punpcklbw): Likewise.
(*avx_punpckhwd): Likewise.
(*avx_punpcklwd): Likewise.
(*avx_punpckhdq): Likewise.
(*avx_punpckldq): Likewise.
(*avx_pinsr<avxmodesuffixs>): Likewise.
(*avx_pinsrq): Likewise.
(*avx_loadld): Likewise.
(*vec_extractv2di_1_rex64_avx): Likewise.
(*vec_extractv2di_1_avx): Likewise.
(*vec_dupv2di_avx): Likewise.
(*vec_concatv2si_avx): Likewise.
(*vec_concatv4si_1_avx): Likewise.
(*vec_concatv2di_avx): Likewise.
(*vec_concatv2di_rex64_avx): Likewise.
(*avx_uavgv16qi3): Likewise.
(*avx_uavgv8hi3): Likewise.
(*avx_psadbw): Likewise.
(avx_movmskp<avxmodesuffixf2c>256): Likewise.
(*avx_phaddwv8hi3): Likewise.
(*avx_phadddv4si3): Likewise.
(*avx_phaddswv8hi3): Likewise.
(*avx_phsubwv8hi3): Likewise.
(*avx_phsubdv4si3): Likewise.
(*avx_phsubswv8hi3): Likewise.
(*avx_pmaddubsw128): Likewise.
(*avx_pmulhrswv8hi3): Likewise.
(*avx_pshufbv16qi3): Likewise.
(*avx_psign<mode>3): Likewise.
(*avx_palignrti): Likewise.
(avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(*avx_mpsadbw): Likewise.
(*avx_packusdw): Likewise.
(*avx_pblendvb): Likewise.
(*avx_pblendw): Likewise.
(avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_ptest256): Likewise.
(avx_roundp<avxmodesuffixf2c>256): Likewise.
(*avx_rounds<ssemodesuffixf2c>): Likewise.
(*avx_aesenc): Likewise.
(*avx_aesenclast): Likewise.
(*avx_aesdec): Likewise.
(*avx_aesdeclast): Likewise.
(avx_vzeroupper): Likewise.
(avx_vzeroupper_rex64): Likewise.
(avx_vpermil<mode>): Likewise.
(avx_vpermilvar<mode>3): Likewise.
(avx_vpermil2<mode>3): Likewise.
(avx_vperm2f128<mode>3): Likewise.
(avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_vbroadcastss256): Likewise.
(avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
(avx_vinsertf128<mode>): Likewise.
(vec_set_lo_<mode>): Likewise.
(vec_set_hi_<mode>): Likewise.
(vec_set_lo_<mode>): Likewise.
(vec_set_hi_<mode>): Likewise.
(vec_set_lo_v16hi): Likewise.
(vec_set_hi_v16hi): Likewise.
(vec_set_lo_v32qi): Likewise.
(vec_set_hi_v32qi): Likewise.
(avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
(avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
(avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
(vec_init<mode>): Likewise.
(*vec_concat<mode>_avx): Likewise.
(blendbits): Support V8SF and V4DF.
(sse2_movq128): Support AVX.
(<sse>_movnt<mode>): Likewise.
(sse2_movntv2di): Likewise.
(sse_rcpv4sf2): Likewise.
(sse_sqrtv4sf2): Likewise.
(sse_rsqrtv4sf2): Likewise.
(<sse>_comi): Likewise.
(<sse>_ucomi): Likewise.
(sse_cvtss2si): Likewise.
(sse_cvtss2si_2): Likewise.
(sse_cvtss2siq): Likewise.
(sse_cvtss2siq_2): Likewise.
(sse_cvttss2si): Likewise.
(sse_cvttss2siq): Likewise.
(sse2_cvtsd2si): Likewise.
(sse2_cvtsd2si_2): Likewise.
(sse2_cvtsd2siq): Likewise.
(sse2_cvtsd2siq_2): Likewise.
(sse2_cvttsd2si): Likewise.
(sse2_cvttsd2siq): Likewise.
(sse2_cvtdq2pd): Likewise.
(*sse2_cvtpd2dq): Likewise.
(*sse2_cvttpd2dq): Likewise.
(*sse2_cvtpd2ps): Likewise.
(sse2_cvtps2pd): Likewise.
(sse3_movshdup): Likewise.
(sse3_movsldup): Likewise.
(sse_storehps): Likewise.
(*sse4_1_extractps): Likewise.
(sse2_storelpd): Likewise.
(vec_dupv2df_sse3): Likewise.
(*vec_concatv2df_sse3): Likewise.
(*sse4_1_pextrb): Likewise.
(*sse4_1_pextrb_memory): Likewise.
(*sse2_pextrw): Likewise.
(*sse4_1_pextrw_memory): Likewise.
(*sse4_1_pextrd): Likewise.
(*sse4_1_pextrq): Likewise.
(sse2_pshufd_1): Likewise.
(sse2_pshuflw_1): Likewise.
(sse2_pshufhw_1): Likewise.
(*sse2_storeq_rex64): Likewise.
(*vec_dupv4si): Likewise.
(<sse>_movmskp<ssemodesuffixf2c>): Likewise.
(sse2_pmovmskb): Likewise.
(*sse2_maskmovdqu): Likewise.
(*sse2_maskmovdqu_rex64): Likewise.
(sse_ldmxcsr): Likewise.
(sse_stmxcsr): Likewise.
(abs<mode>2): Likewise.
(sse4_1_movntdqa): Likewise.
(sse4_1_phminposuw): Likewise.
(sse4_1_extendv8qiv8hi2): Likewise.
(*sse4_1_extendv8qiv8hi2): Likewise.
(sse4_1_extendv4qiv4si2): Likewise.
(*sse4_1_extendv4qiv4si2): Likewise.
(sse4_1_extendv2qiv2di2): Likewise.
(*sse4_1_extendv2qiv2di2): Likewise.
(sse4_1_extendv4hiv4si2): Likewise.
(*sse4_1_extendv4hiv4si2): Likewise.
(sse4_1_extendv2hiv2di2): Likewise.
(*sse4_1_extendv2hiv2di2): Likewise.
(sse4_1_extendv2siv2di2): Likewise.
(*sse4_1_extendv2siv2di2): Likewise.
(sse4_1_zero_extendv8qiv8hi2): Likewise.
(*sse4_1_zero_extendv8qiv8hi2): Likewise.
(sse4_1_zero_extendv4qiv4si2): Likewise.
(*sse4_1_zero_extendv4qiv4si2): Likewise.
(sse4_1_zero_extendv2qiv2di2): Likewise.
(*sse4_1_zero_extendv2qiv2di2): Likewise.
(sse4_1_zero_extendv4hiv4si2): Likewise.
(*sse4_1_zero_extendv4hiv4si2): Likewise.
(sse4_1_zero_extendv2hiv2di2): Likewise.
(*sse4_1_zero_extendv2hiv2di2): Likewise.
(sse4_1_zero_extendv2siv2di2): Likewise.
(*sse4_1_zero_extendv2siv2di2): Likewise.
(sse4_1_ptest): Likewise.
(sse4_1_roundp<ssemodesuffixf2c>): Likewise.
(sse4_2_pcmpestri): Likewise.
(sse4_2_pcmpestrm): Likewise.
(sse4_2_pcmpistri): Likewise.
(sse4_2_pcmpistrm): Likewise.
(aesimc): Likewise.
(aeskeygenassist): Likewise.
2008-08-28 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (vzeroall_operation): New.
* config/i386/sse.md (avx_vzeroall): New.
(*avx_vzeroall): Likewise.
From-SVN: r139726
Paul Brook [Thu, 28 Aug 2008 18:03:51 +0000 (18:03 +0000)]
arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
2008-08-28 Paul Brook <paul@codesourcery.com>
Mark Shinwell <shinwell@codesourcery.com>
Richard Earnshaw <richard.earnshaw@arm.com>
gcc/
* config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
(TARGET_MIN_ANCHOR_OFFSET): New.
(arm_override_options): Set correct anchor ranges for Thumb-1
and Thumb-2 if required.
(legitimize_pic_address): Handle case involving a TLS symbol
reference with an addend.
(arm_optimization_options): Enable section anchors at -O1 and
above.
* config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
* config/arm/arm-protos.h (arm_optimization_options): New.
Co-Authored-By: Mark Shinwell <shinwell@codesourcery.com>
Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r139725
Daniel Kraft [Thu, 28 Aug 2008 18:03:02 +0000 (20:03 +0200)]
gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
2008-08-28 Daniel Kraft <d@domob.eu>
* gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
(gfc_get_typebound_proc): New macro.
(struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
(enum gfc_exec_op): New value `EXEC_COMPCALL'.
(gfc_find_typebound_proc): New argument.
(gfc_copy_ref), (gfc_match_varspec): Made public.
* decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
* expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
(gfc_copy_ref): Made public and use new name.
(simplify_const_ref): Use new name of gfc_copy_ref.
(simplify_parameter_variable): Ditto.
(gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
* match.c (match_typebound_call): New method.
(gfc_match_call): Allow for CALL's to typebound procedures.
* module.c (binding_passing), (binding_overriding): New variables.
(expr_types): Add EXPR_COMPCALL.
(mio_expr): gcc_unreachable for EXPR_COMPCALL.
(mio_typebound_proc), (mio_typebound_symtree): New methods.
(mio_f2k_derived): Handle type-bound procedures.
* primary.c (gfc_match_varspec): Made public and parse trailing
references to type-bound procedures; new argument `sub_flag'.
(gfc_match_rvalue): New name and argument of gfc_match_varspec.
(match_variable): Ditto.
* resolve.c (update_arglist_pass): New method.
(update_compcall_arglist), (resolve_typebound_static): New methods.
(resolve_typebound_call), (resolve_compcall): New methods.
(gfc_resolve_expr): Handle EXPR_COMPCALL.
(resolve_code): Handle EXEC_COMPCALL.
(resolve_fl_derived): New argument to gfc_find_typebound_proc.
(resolve_typebound_procedure): Ditto and removed not-implemented error.
* st.c (gfc_free_statement): Handle EXEC_COMPCALL.
* symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
implement access-checking.
* trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
on EXPR_COMPCALL.
* trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
* trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
intialization of ref->type.
2008-08-28 Daniel Kraft <d@domob.eu>
* gfortran.dg/typebound_call_1.f03: New test.
* gfortran.dg/typebound_call_2.f03: New test.
* gfortran.dg/typebound_call_3.f03: New test.
* gfortran.dg/typebound_call_4.f03: New test.
* gfortran.dg/typebound_call_5.f03: New test.
* gfortran.dg/typebound_call_6.f03: New test.
* gfortran.dg/typebound_proc_1.f08: Don't expect not-implemented error.
* gfortran.dg/typebound_proc_2.f90: Ditto.
* gfortran.dg/typebound_proc_5.f03: Ditto.
* gfortran.dg/typebound_proc_6.f03: Ditto.
* gfortran.dg/typebound_proc_7.f03: Ditto.
* gfortran.dg/typebound_proc_8.f03: Ditto.
From-SVN: r139724
Nick Clifton [Thu, 28 Aug 2008 17:02:28 +0000 (17:02 +0000)]
stormy16.h (IRA_COVER_CLASSES): Define.
* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
* config/stormy16/stormy16.md (zero_extendqihi2): Fix length
attribute.
From-SVN: r139723
Nick Clifton [Thu, 28 Aug 2008 16:57:34 +0000 (16:57 +0000)]
v850.h (IRA_COVER_CLASSES): Define.
* config/v850/v850.h (IRA_COVER_CLASSES): Define.
* config/v850/v850.md (return): Remove frame size restriction.
From-SVN: r139722
Nick Clifton [Thu, 28 Aug 2008 16:54:08 +0000 (16:54 +0000)]
* config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
From-SVN: r139721
Nick Clifton [Thu, 28 Aug 2008 16:52:16 +0000 (16:52 +0000)]
* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
From-SVN: r139720
Nick Clifton [Thu, 28 Aug 2008 16:49:56 +0000 (16:49 +0000)]
* config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
From-SVN: r139719
Nick Clifton [Thu, 28 Aug 2008 16:47:18 +0000 (16:47 +0000)]
* config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
From-SVN: r139718
Paul Brook [Thu, 28 Aug 2008 16:17:11 +0000 (16:17 +0000)]
vfp11.md: Update license notice.
2008-08-28 Paul Brook <paul@codesourcery.com>
* config/arm/vfp11.md: Update license notice.
* config/arm/cortex-r4.md: Ditto.
From-SVN: r139717
Laurent GUERBY [Thu, 28 Aug 2008 15:58:31 +0000 (15:58 +0000)]
configure: Regenerate.
2008-08-28 Laurent Guerby <laurent@guerby.net>
* configure: Regenerate.
From-SVN: r139716
Tristan Gingold [Thu, 28 Aug 2008 15:35:34 +0000 (15:35 +0000)]
configure.ac (powerpc-*-darwin*, [...]): Enable bfd, binutils and opcodes.
* configure.ac (powerpc-*-darwin*, i?86-*-darwin*,x86_64-*-darwin9):
Enable bfd, binutils and opcodes.
* configure: Regenerate.
From-SVN: r139715
Richard Guenther [Thu, 28 Aug 2008 15:26:13 +0000 (15:26 +0000)]
re PR tree-optimization/37207 (ice at tree-ssa-ifcombine.c:222 for -Os)
2008-08-28 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37207
* tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
tuplification bug.
* gcc.c-torture/compile/pr37207.c: New testcase.
From-SVN: r139714
Janus Weil [Thu, 28 Aug 2008 15:10:50 +0000 (17:10 +0200)]
re PR fortran/37253 (Segmentation fault with procedure pointer)
2008-08-28 Janus Weil <janus@gcc.gnu.org>
PR fortran/37253
* module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
saving attr.procedure and attr.proc_ptr to the module file.
2008-08-28 Janus Weil <janus@gcc.gnu.org>
PR fortran/37253
* gfortran.dg/proc_ptr_10.f90: New.
From-SVN: r139713
Dodji Seketeli [Thu, 28 Aug 2008 14:49:48 +0000 (14:49 +0000)]
re PR c++/36741 (Bogus "large integer implicitly truncated" passing size_t constant to new)
2008-08-28 Dodji Seketeli <dodji@redhat.com>
PR c++/36741
* tree.c (int_fits_type_p): Don't forget unsigned integers
of type sizetype which higher end word equals -1.
From-SVN: r139712
Ira Rosen [Thu, 28 Aug 2008 11:11:14 +0000 (11:11 +0000)]
target.h (struct vectorize): Add new target builtin.
* target.h (struct vectorize): Add new target builtin.
* tree-vectorizer.c (destroy_loop_vec_info): Call
vect_free_slp_instance instead of vect_free_slp_node.
* tree-vectorizer.h (enum slp_load_perm_type): New.
(struct _slp_instance): Add new fields.
(SLP_INSTANCE_LOAD_PERMUTATION): New.
(SLP_INSTANCE_LOADS): New.
(vect_free_slp_tree): Remove.
(vect_free_slp_instance): Declare.
(SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
(vectorizable_load): Add argument.
(vect_transform_slp_perm_load): New.
* tree-vect-analyze.c (vect_analyze_operations): Add an argument to
vectorizable_load.
(vect_get_place_in_interleaving_chain): New function.
(vect_free_slp_tree): Make static.
(vect_free_slp_instance): New function.
(vect_build_slp_tree): Add new arguments. Allow load permutations and
collect the load location in the interleaving chain.
(vect_supported_slp_permutation_p): New function.
(vect_supported_load_permutation_p): Likewise.
(vect_analyze_slp_instance): In case of loads permutation, call
vect_supported_load_permutation_p to check that the permutation is
supported.
* target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
* tree-vect-transform.c (vect_transform_stmt): Add new argument.
(vect_create_mask_and_perm): New function.
(vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
(vectorizable_load): Add an argument. Don't keep the created vectors
statements in the node if permutation is required. Call
vect_transform_slp_perm_load to generate the permutation.
(vect_transform_stmt): Add new argument. Call vectorizable_load with
additional argument.
(vect_schedule_slp_instance): In case of loads permutation, allocate
vectorized statements structure for all the related SLP nodes. Call
vect_transform_stmt with addditional argument.
(vect_transform_loop): Call vect_transform_stmt with correct arguments.
* config/spu/spu.c (spu_builtin_vec_perm): New.
(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
* config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
* config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
From-SVN: r139706
Chris Fairles [Thu, 28 Aug 2008 10:22:19 +0000 (10:22 +0000)]
acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): New.
2008-08-28 Chris Fairles <chris.fairles@gmail.com>
* acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): New. Checks for gthread
support used by c++0x thread library.
* configure.ac: Test unconditionally.
* configure: Regenerate.
* config.h.in: Regenerate.
From-SVN: r139705
Chris Fairles [Thu, 28 Aug 2008 09:20:57 +0000 (09:20 +0000)]
gthr-posix.h (__gthread_create, [...]): New functions.
2008-08-28 Chris Fairles <chris.fairles@gmail.com>
* gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
__gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
__gthread_cond_signal, __gthread_cond_timedwait,
__gthread_cond_timedwait_recursive): New functions.
* gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
Likewise.
* gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
thread interfaces.
From-SVN: r139704
Richard Guenther [Thu, 28 Aug 2008 08:31:37 +0000 (08:31 +0000)]
re PR tree-optimization/37005 (GNAT Bug Box for
cd2a24e.adb:37 at tree-vrp.c:392)
2008-08-28 Richard Guenther <rguenther@suse.de>
PR middle-end/37005
* fold-const.c (maybe_canonicalize_comparison_1): Require
undefined overflow only for canonicalizing A +- CST cmp CST.
Make sure to not generate new constants that are not inside
their TYPE_MIN/MAX_VALUE range.
(maybe_canonicalize_comparison): Remove undefined overflow
checking from here.
(fold_binary): Remove now duplicate folding.
From-SVN: r139702
John David Anglin [Thu, 28 Aug 2008 01:56:47 +0000 (01:56 +0000)]
MAINTAINERS: Update my hppa and hpux entries.
* MAINTAINERS: Update my hppa and hpux entries. Remove my vax entry.
From-SVN: r139691
Benjamin Kosnik [Thu, 28 Aug 2008 00:44:45 +0000 (00:44 +0000)]
Makefile.am: Edit xml file list.
2008-08-27 Benjamin Kosnik <bkoz@redhat.com>
* doc/Makefile.am: Edit xml file list.
* doc/Makefile.in: Regenerate.
* configure: Regenerate.
* doc/xml/manual/intro.xml: Edit, correct links, structure.
* doc/xml/manual/configure.xml: Same.
* doc/xml/manual/debug.xml: Same.
* doc/xml/manual/test.xml: Same.
* doc/xml/manual/build.xml: Remove.
* doc/xml/manual/prerequisites.xml: Add.
* doc/html/*: Regenerate.
From-SVN: r139690
Paolo Carlini [Thu, 28 Aug 2008 00:40:11 +0000 (00:40 +0000)]
c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT use not updated in the last change.
2008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
* c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
use not updated in the last change.
From-SVN: r139689
Kaz Kojima [Thu, 28 Aug 2008 00:37:56 +0000 (00:37 +0000)]
sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
* config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
(IRA_COVER_CLASSES): Add FPUL_REGS.
From-SVN: r139688
GCC Administrator [Thu, 28 Aug 2008 00:16:44 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r139686
Manuel López-Ibáñez [Thu, 28 Aug 2008 00:08:51 +0000 (00:08 +0000)]
ChangeLog: Fix spelling mistake.
2008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* ChangeLog: Fix spelling mistake.
From-SVN: r139683
Manuel López-Ibáñez [Thu, 28 Aug 2008 00:00:49 +0000 (00:00 +0000)]
re PR c++/37217 (-Wconversion causes ICE with __builtin_strcmp with one char compare)
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR 37217
* c-common.c (conversion_warning): Check for null operands.
testsuite/
* gcc.dg/pr37217.c: New.
From-SVN: r139682
Manuel López-Ibáñez [Wed, 27 Aug 2008 23:54:36 +0000 (23:54 +0000)]
re PR c/31673 ("`for' loop initial declaration used outside C99 mode" is confusing)
2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c/31673
* c-decl.c (check_for_loop_decls): Improve error message. Give
hint.
testsuite/
* gcc.dg/c90-fordecl-1.c: Update.
From-SVN: r139681