1. 23 Aug, 2011 19 commits
    • re PR middle-end/38509 (Bogus "attempt to free a non-heap object" warning) · a3a704a4
      2011-08-23  Mark Heffernan  <meheff@google.com>
      
              PR middle-end/38509
              * common.opt (Wfree-nonheap-object): New option.
              * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
              * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
              to warning.
              (expand_builtin): Make warning conditional.
      
      From-SVN: r178004
      Mark Heffernan committed
    • Add BMI2 support. · 82feeb8d
      gcc/
      
      2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
      
      	* config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
      	(length_immediate): Handle imulx, ishiftx and rotatex.
      	(imm_disp): Ditto.
      	(isa): Add bmi2.
      	(enabled): Handle bmi2.
      	(w): New mode attribute.
      	(*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
      	(*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
      	(*bmi2_umulditi3_1): New insn pattern.
      	(*bmi2_umulsidi3_1): Ditto.
      	(*umul<mode><dwi>3 splitter): New splitter to avoid flags
      	dependency.
      	(*bmi2_ashl<mode>3_1): New insn pattern.
      	(*ashl<mode>3_1): Add ishiftx BMI2 alternative.
      	(*ashl<mode>3_1 splitter): New splitter to avoid flags
      	dependency.
      	(*bmi2_ashlsi3_1_zext): New insn pattern.
      	(*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
      	(*ashlsi3_1_zext splitter): New splitter to avoid flags
      	dependency.
      	(*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
      	(*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
      	(*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
      	flags dependency.
      	(*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
      	(*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
      	(*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
      	flags dependency.
      	(*bmi2_rorx<mode>3_1): New insn pattern.
      	(*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
      	(*rotate<mode>3_1 splitter): New splitter to avoid flags
      	dependency.
      	(*rotatert<mode>3_1 splitter): Ditto.
      	(*bmi2_rorxsi3_1_zext): New insn pattern.
      	(*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
      	(*rotatesi3_1_zext splitter): New splitter to avoid flags
      	dependency.
      	(*rotatertsi3_1_zext splitter): Ditto.
      
      2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET):
      	New.
      	(OPTION_MASK_ISA_BMI2_UNSET): Likewise.
      	(ix86_handle_option): Handle OPT_mbmi2 case.
      	* config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
      	(x86_64-*-*): Likewise.
      	* config/i386/bmi2intrin.h: New file.
      	* config/i386/cpuid.h (bit_BMI2): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
      	BMI2 feature.
      	* config/i386/i386-c.c (ix86_target_macros_internal):
      	Conditionally define __BMI2__.
      	* config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
      	Handle BMI2 option.
      	(ix86_valid_target_attribute_inner_p): Handle BMI2 option.
      	(print_reg): New code.
      	(ix86_print_operand): Likewise.
      	(ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
      	IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
      	IX86_BUILTIN_PEXT64.
      	(bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
      	IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
      	IX86_BUILTIN_PEXT64.
      	* config/i386/i386.h (TARGET_BMI2): New.
      	* config/i386/i386.md (UNSPEC_PDEP): New.
      	(UNSPEC_PEXT): Likewise.
      	(*bmi2_bzhi_<mode>3): Likewise.
      	(*bmi2_pdep_<mode>3): Likewise.
      	(*bmi2_pext_<mode>3): Likewise.
      	* config/i386/i386.opt (mbmi2): New.
      	* config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
      	is defined.
      	* doc/extend.texi: Document BMI2 built-in functions.
      	* doc/invoke.texi: Document -mbmi2.
      
      gcc/testsuite/
      
      2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
      
      	* g++.dg/other/i386-2.C: Add -mbmi2 check.
      	* g++.dg/other/i386-3.C: Likewise.
      	* gcc.target/i386/bmi2-bzhi32-1.c: New testcase.
      	* gcc.target/i386/bmi2-bzhi32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-bzhi64-1.c: Likewise.
      	* gcc.target/i386/bmi2-bzhi64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-mulx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-mulx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-mulx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-mulx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pdep32-1.c: Likewise.
      	* gcc.target/i386/bmi2-pdep32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pdep64-1.c: Likewise.
      	* gcc.target/i386/bmi2-pdep64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pext32-1.c: Likewise.
      	* gcc.target/i386/bmi2-pext32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-pext64-1.c: Likewise.
      	* gcc.target/i386/bmi2-pext64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-rorx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-rorx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-rorx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-rorx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-sarx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-sarx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-sarx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-sarx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shlx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-shlx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shlx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-shlx64-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shrx32-1.c: Likewise.
      	* gcc.target/i386/bmi2-shrx32-1a.c: Likewise.
      	* gcc.target/i386/bmi2-shrx64-1.c: Likewise.
      	* gcc.target/i386/bmi2-shrx64-1a.c: Likewise.
      	* gcc.target/i386/i386.exp (check_effective_target_bmi2): New.
      	* gcc.target/i386/sse-12.c: Add BMI2.
      	* gcc.target/i386/sse-13.c: Likewise.
      	* gcc.target/i386/sse-14.c: Likewise.
      	* gcc.target/i386/sse-22.c: Likewise.
      	* gcc.target/i386/sse-23.c: Likewise.
      
      From-SVN: r178001
      H.J. Lu committed
    • typeck2.c (build_functional_cast): Don't try to avoid calling build_value_init. · 30d1352e
      	* typeck2.c (build_functional_cast): Don't try to avoid calling
      	build_value_init.
      	* pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags.
      
      From-SVN: r177999
      Jason Merrill committed
    • re PR c++/49045 ([C++0x] unexpected "different exception specifier" error with noexcept) · f7d605ac
      	PR c++/49045
      	Core 1321
      	* tree.c (dependent_name): New.
      	(cp_tree_equal): Two calls with the same dependent name are
      	equivalent even if the overload sets are different.
      
      From-SVN: r177998
      Jason Merrill committed
    • tree.c (build_target_expr): Set TREE_CONSTANT on literal TARGET_EXPR if the value is constant. · 30fdd4f2
      	* tree.c (build_target_expr): Set TREE_CONSTANT on
      	literal TARGET_EXPR if the value is constant.
      	* typeck2.c (build_functional_cast): Don't set it here.
      
      From-SVN: r177997
      Jason Merrill committed
    • Core 903 (partial) · 27bec7bf
      	Core 903 (partial)
      	* call.c (null_ptr_cst_p): Only 0 qualifies in C++11.
      
      From-SVN: r177996
      Jason Merrill committed
    • Core 975 · 9b8662c2
      	Core 975
      	* decl.c (cxx_init_decl_processing): Initialize
      	dependent_lambda_return_type_node.
      	* cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE.
      	(dependent_lambda_return_type_node): Define.
      	(DECLTYPE_FOR_LAMBDA_RETURN): Remove.
      	* semantics.c (lambda_return_type): Handle overloaded function.
      	Use dependent_lambda_return_type_node instead of
      	DECLTYPE_FOR_LAMBDA_RETURN.
      	(apply_lambda_return_type): Don't check dependent_type_p.
      	* pt.c (tsubst_copy_and_build): Handle lambda return type deduction.
      	(instantiate_class_template_1): Likewise.
      	(tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN.
      	* mangle.c (write_type): Likewise.
      	* typeck.c (structural_comptypes): Likewise.
      	(check_return_expr): Handle dependent_lambda_return_type_node.
      
      From-SVN: r177995
      Jason Merrill committed
    • re PR c++/50024 ([C++0x] [4.7 Regression] crash when using braced initialization… · 27879147
      re PR c++/50024 ([C++0x] [4.7 Regression] crash when using braced initialization in member function of template)
      
      	PR c++/50024
      	* semantics.c (maybe_constant_value): Don't try to fold { }.
      	* pt.c (build_non_dependent_expr): Don't wrap { }.
      	* init.c (build_value_init): Allow scalar value-init in templates.
      
      From-SVN: r177994
      Jason Merrill committed
    • re PR c++/50158 (invalid 'variable set but not used' warning (boolean used as an… · 09e640b3
      re PR c++/50158 (invalid 'variable set but not used' warning (boolean used as an index to an array))
      
      	PR c++/50158
      	* typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs
      	if it has side-effects and needs to be preevaluated.
      
      	* g++.dg/warn/Wunused-var-16.C: New test.
      
      From-SVN: r177992
      Jakub Jelinek committed
    • re PR middle-end/50161 (wrong code with -fno-tree-ter and __builtin_popcountl) · e2f00837
      	PR middle-end/50161
      	* simplify-rtx.c (simplify_const_unary_operation): If
      	op is CONST_INT, don't look at op_mode, but use instead
      	mode.
      	* optabs.c (add_equal_note): For FFS, CLZ, CTZ,
      	CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
      	operation and TRUNCATE/ZERO_EXTEND if needed.
      	* doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
      	Document that operand mode must be same as operation mode,
      	or VOIDmode.
      	* config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
      	*paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
      	*popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
      	*ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
      	use the mode of operand for the operation and add truncate
      	or zero_extend around if needed.
      	* config/c6x/c6x.md (ctzdi2): Likewise.
      	* config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
      
      	* gcc.dg/pr50161.c: New test.
      
      From-SVN: r177991
      Jakub Jelinek committed
    • re PR c++/50055 ([PATCH] Location information for the throw() specification in a… · e70e0b60
      re PR c++/50055 ([PATCH] Location information for the throw() specification in a function may be incorrect)
      
      	PR c++/50055
      	* except.c (begin_eh_spec_block): Build EH_SPEC block on the
      	same line as the function.
      
      From-SVN: r177990
      Siddhesh Poyarekar committed
    • cfgexpand.c (expand_one_register_var): Use get_pointer_alignment. · d466b407
      	* cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
      	(gimple_expand_cfg): Merge alignment info for coalesced pointer
      	SSA names.
      
      From-SVN: r177989
      Michael Matz committed
    • re PR c++/46862 (ICE on std::decimal::decimal32 without any fields) · bfcbe068
      	PR c++/46862
      	* class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type
      	which doesn't have any fields, clear it and diagnose.
      
      	* g++.dg/dfp/nofields.C: New test.
      
      From-SVN: r177987
      Jakub Jelinek committed
    • Makefile.in (tree-data-ref.o): Add tree-affine.h dependency. · 02f5d6c5
      2011-08-23  Richard Guenther  <rguenther@suse.de>
      
      	* Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
      	* tree-affine.h (aff_comb_cannot_overlap_p): Declare.
      	* tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
      	from ...
      	* tree-ssa-loop-im.c (cannot_overlap_p): ... here.
      	(mem_refs_may_alias_p): Adjust.
      	* tree-data-ref.h (dr_may_alias_p): Adjust.
      	* tree-data-ref.c: Include tree-affine.h.
      	(dr_analyze_indices): Do nothing for the non-loop case.
      	(dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
      	more cases in the non-loop case.
      	* graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
      	calls to dr_may_alias_p.
      	(write_alias_graph_to_ascii_ecc): Likewise.
      	(write_alias_graph_to_ascii_dot): Likewise.
      	(build_alias_set_optimal_p): Likewise.
      
      From-SVN: r177986
      Richard Guenther committed
    • re PR fortran/31600 (Better error message for redeclation of USEd symbols) · 0fcbc86b
      2011-08-23  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/31600
              * symbol.c (gfc_add_type): Better diagnostic if redefining
              use-associated symbol.
              * module.c (gfc_use_module): Use module name as locus.
      
      2011-08-23  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/31600
              * gfortran.dg/use_16.f90: New.
      
      From-SVN: r177985
      Tobias Burnus committed
    • re PR tree-optimization/50162 (Wrong vectorization) · 336ecb65
      2011-08-23  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/50162
      	* tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
      
      From-SVN: r177984
      Richard Guenther committed
    • tree-data-ref.c (dr_analyze_indices): Add comments, handle REALPART_EXPR and… · b8324815
      tree-data-ref.c (dr_analyze_indices): Add comments, handle REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
      
      2011-08-23  Richard Guenther  <rguenther@suse.de>
      
      	* tree-data-ref.c (dr_analyze_indices): Add comments, handle
      	REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
      	(create_data_ref): Also dump access functions for the created
      	data-ref.
      
      From-SVN: r177983
      Richard Guenther committed
    • Daily bump. · 5f0c8ad2
      From-SVN: r177982
      GCC Administrator committed
  2. 22 Aug, 2011 20 commits
    • sfp-machine.h (ASM_INVALID): New define. · f70c879a
      	* config/i386/64/sfp-machine.h (ASM_INVALID): New define.
      	(ASM_DIVZERO): Ditto.
      	(FP_HANLDE_EXCEPTIONS): Use ASM_INVALID and ASM_DIVZERO.
      
      From-SVN: r177978
      Uros Bizjak committed
    • * ChangeLog: Add missing change. · d913744e
      From-SVN: r177975
      Uros Bizjak committed
    • re PR target/50155 (AVX2 support broke -mavx) · 1707583b
      	PR target/50155
      	* config/i386/sse.md (VI_AVX2): New.
      	(<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
      	(*<plusminus_insn><mode>3): Ditto.
      	(<sse2_avx2>_andnot<mode>3): Ditto.
      	(*andnot<mode>3): Fix order of cond operands.
      	Add asserts for correct TARGET_xxx.
      	(*<any_logic:code><mode>3): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/50155
      	* gcc.target/i386/pr50155.c: New test.
      
      From-SVN: r177974
      Uros Bizjak committed
    • Add ability to force lexed tokens' source_locations. · e3dfef44
      Use it to force BUILTINS_LOCATION when declaring builtins instead of creating a <built-in> entry in the line_table which is wrong.
      
      	* c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens
      	defined in cpp_init_builtins and c_cpp_builtins.
      
      	gcc/fortran/ChangeLog
      	* cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
      	defined in cpp_define_builtins.
      
      	libcpp/ChangeLog
      	* init.c (cpp_create_reader): Inititalize forced_token_location_p.
      	* internal.h (struct cpp_reader): Add field forced_token_location_p.
      	* lex.c (_cpp_lex_direct): Use forced_token_location_p.
      	(cpp_force_token_locations): New.
      	(cpp_stop_forcing_token_locations): New.
      
      From-SVN: r177973
      Gabriel Charette committed
    • m32c.h (CLASS_MAX_NREGS): Remove macro. · c4831cff
      	* config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
      	* config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
      	* config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
      	regclass argument type to reg_class_t. Change 'max' and 'v' vars
      	and return types to unsigned char. Use reg_class_contents instead
      	of class_contents.
      	(TARGET_CLASS_MAX_NREGS): Define.
      
      From-SVN: r177971
      Anatoly Sokolov committed
    • * ChangeLog: Additional fixes for AVX2 ChangeLog entry. · 8b46e440
      From-SVN: r177969
      Uros Bizjak committed
    • c6x.md (indirect_jump_shadow): Tweak representation to make computed_jump_p return true. · 60418b5d
      	* config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
      	to make computed_jump_p return true.
      
      From-SVN: r177968
      Bernd Schmidt committed
    • Centralize PICFLAG configuration · e3aa9eba
      	config:
      	* picflag.m4: New file.
      
      	gcc:
      	* configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
      	(PICFLAG_FOR_TARGET): Substitute.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	gcc/ada:
      	* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
      	(GNATLIBCFLAGS_FOR_C): Replace
      	TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
      	(gnatlib-shared-default, gnatlib-shared-dual-win32)
      	(gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
      	(gnatlib-sjlj, gnatlib-zcx): Likewise.
      
      	libada:
      	* configure.ac: Include ../config/picflag.m4.
      	(GCC_PICFLAG): Call it.
      	Substitute.
      	* configure: Regenerate.
      	* Makefile.in (TARGET_LIBGCC2_CFLAGS): Replace by PICFLAG.
      	(GNATLIBCFLAGS_FOR_C): Replace TARGET_LIBGCC2_CFLAGS by PICFLAG.
      	(LIBADA_FLAGS_TO_PASS): Pass PICFLAG as PICFLAG_FOR_TARGET.
      	Don't include $(GCC_DIR)/libgcc.mvars.
      
      	libiberty:
      	* aclocal.m4: Include ../config/picflag.m4.
      	* configure.ac (GCC_PICFLAG): Call it.
      	(enable_shared): Clear PICFLAG unless shared.
      	* configure: Regenerate.
      
      From-SVN: r177967
      Rainer Orth committed
    • * ChangeLog: Fix and enhance ChangeLog entry. · eb3e9f60
      From-SVN: r177966
      Uros Bizjak committed
    • Avoid dangling line table after loading pch · 671d9f12
      gcc/
      
      	* c-family/c-pch.c (c_common_read_pch): Re-set line table right
      	after reading in the pch.
      
      From-SVN: r177964
      Dodji Seketeli committed
    • Use .init_array section only if __ELF__ is defined. · b0894e1f
      2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
      	defined.
      	* configure: Regenerated.
      
      From-SVN: r177963
      H.J. Lu committed
    • re PR tree-optimization/50133 (ICE: SIGSEGV in vect_finish_stmt_generation… · ad885386
      re PR tree-optimization/50133 (ICE: SIGSEGV in vect_finish_stmt_generation (gimple.h:4821) with -ftree-vectorize -fno-tree-loop-im)
      
      	PR tree-optimization/50133
      	* tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
      	from stmt instead of some statement around gsi.
      
      	* gcc.dg/pr50133.c: New test.
      
      From-SVN: r177958
      Jakub Jelinek committed
    • re PR middle-end/50141 (ICE: tree check: expected var_decl, have parm_decl in… · e4269c78
      re PR middle-end/50141 (ICE: tree check: expected var_decl, have parm_decl in get_bit_range, at expr.c:4357 with --param allow-store-data-races=0 and bitfields)
      
      	PR middle-end/50141
      	* expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
      	innerdecl is a VAR_DECL.
      
      	* c-c++-common/cxxbitfields-6.c: New test.
      
      From-SVN: r177957
      Jakub Jelinek committed
    • re PR fortran/50050 (Internal compiler error free_expr0 at expr.c:3709 via gfc_done_2) · 7d7212ec
      2011-08-22  Mikael Morin  <mikael.morin@gcc.gnu.org>
      
      	PR fortran/50050
      	* gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
      	* expr.c (gfc_clear_shape, gfc_free_shape): New functions.
      	(free_expr0): Re-use gfc_free_shape.
      	* trans-expr.c (gfc_trans_subarray_assign): Ditto.
      	* trans-io.c (transfer_array_component): Ditto.
      	* resolve.c (check_host_association): Ditto.
      	(gfc_expr_to_initialize): Don't force the rank value and free the shape
      	after updating the expression. Recalculate shape and rank.
      	(resolve_where_shape): Re-use gfc_clear_shape.
      	* array.c (gfc_array_ref_shape): Ditto.
      
      2011-08-22  Mikael Morin  <mikael.morin@gcc.gnu.org>
      
      	PR fortran/50050
      	* gfortran.dg/alloc_comp_initializer_3.f90: New test.
      
      From-SVN: r177956
      Mikael Morin committed
    • Add support for AVX2 builtin functions. · 977e83a3
      2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
      
      	* config/i386/avx2intrin.h: New file.
      	* config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
      	PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
      	V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
      	V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
      	V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
      	V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
      	V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
      	V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
      	V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
      	V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
      	V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
      	V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
      	V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
      	V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
      	V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
      	V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
      	V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
      	V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
      	VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
      	VOID_FTYPE_PV8SI_V8SI_V8SI,
      	V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
      	V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
      	V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
      	V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
      	V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
      	V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
      	V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
      	V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
      	V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
      	V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
      	V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
      	V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
      	V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
      	V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
      	V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
      	V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
      	V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
      	V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
      	V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
      	V4DI_FTYPE_V4DI_INT_CONVERT,
      	V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
      	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
      	IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
      	IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
      	IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
      	IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
      	IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
      	IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
      	IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
      	IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
      	IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
      	IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
      	IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
      	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
      	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
      	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
      	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
      	IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
      	IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
      	IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
      	IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
      	IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
      	IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
      	IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
      	IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
      	IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
      	IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
      	IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
      	IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
      	IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
      	IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
      	IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
      	IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
      	IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
      	IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
      	IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
      	IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
      	IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
      	IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
      	IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
      	IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
      	IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
      	IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
      	IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
      	IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
      	IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
      	IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
      	IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
      	IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
      	IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
      	IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
      	IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
      	IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
      	IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
      	IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
      	IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
      	IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
      	IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
      	IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
      	IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
      	IX86_BUILTIN_VBROADCASTSS_PS256,
      	IX86_BUILTIN_VBROADCASTSD_PD256,
      	IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
      	IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
      	IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
      	IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
      	IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
      	IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
      	IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
      	IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
      	IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
      	IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
      	IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
      	IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
      	IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
      	IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
      	IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
      	IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
      	IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
      	IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
      	IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
      	IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
      	IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
      	IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
      	IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
      	IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
      	IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
      	IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
      	(bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
      	IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
      	IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
      	IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
      	IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
      	(bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
      	IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
      	IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
      	IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
      	IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
      	IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
      	IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
      	IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
      	IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
      	IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
      	IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
      	IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
      	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
      	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
      	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
      	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
      	IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
      	IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
      	IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
      	IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
      	IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
      	IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
      	IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
      	IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
      	IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
      	IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
      	IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
      	IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
      	IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
      	IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
      	IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
      	IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
      	IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
      	IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
      	IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
      	IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
      	IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
      	IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
      	IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
      	IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
      	IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
      	IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
      	IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
      	IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
      	IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
      	IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
      	IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
      	IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
      	IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
      	IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
      	IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
      	IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
      	IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
      	IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
      	IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
      	IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
      	IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
      	IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
      	IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
      	IX86_BUILTIN_VBROADCASTSD_PD256,
      	IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
      	IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
      	IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
      	IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
      	IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
      	IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
      	IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
      	IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
      	IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
      	IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
      	IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
      	IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
      	IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
      	IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
      	(ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
      	IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
      	IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
      	IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
      	IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
      	IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
      	IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
      	IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
      	IX86_BUILTIN_GATHERDIV8SI.
      	(ix86_preferred_simd_mode): Support AVX2 modes.
      	(ix86_expand_args_builtin): Support AVX2 built-ins.
      	(ix86_expand_special_args_builtin): Likewise.
      	(ix86_expand_builtin): Likewise.
      	* config/i386/i386.md (UNSPEC_VPERMSI): New.
      	(UNSPEC_VPERMDF): Likewise.
      	(UNSPEC_VPERMSF): Likewise.
      	(UNSPEC_VPERMDI): Likewise.
      	(UNSPEC_VPERMTI): Likewise.
      	(UNSPEC_GATHER): Likewise.
      	(ssemodesuffix): Extend.
      	* config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
      	is defined.
      	* config/i386/predicates.md (const1248_operand): New.
      	* config/i386/sse.md (VI_AVX2):
      	(VI1_AVX2): Likewise.
      	(VI2_AVX2): Likewise.
      	(VI4_AVX2): Likewise.
      	(VI8_AVX2): Likewise.
      	(VIMAX_AVX2): Likewise.
      	(SSESCALARMODE): Likewise.
      	(VI12_AVX2): Likewise.
      	(VI24_AVX2): Likewise.
      	(VI124_AVX2): Likeuse_submit_for_speed = 1
      	wise.
      	(VI248_AVX2): Likewise.
      	(VI48_AVX2): Likewise.
      	(VI4SD_AVX2): Likewise.
      	(V48_AVX2): Likewise.
      	(avx2modesuffix): Likewise.
      	(sse_avx2): Likewise.
      	(sse2_avx2): Likewise.
      	(ssse3_avx2): Likewise.
      	(sse4_1_avx2): Likewise.
      	(avx_avx2): Likewise.
      	(lshift)<code_oterator>: Likewise.
      	(lshift_insn): Likewise.
      	(lshift)<code_attr>: Likewise.
      	(SSESHORTMODE): Likewise.
      	(SSELONGMODE): Likewise.
      	(SSEBYTEMODE): Likewise.
      	(AVXTOSSEMODE): Likewise.
      	(shortmode): Likewise.
      	(ssescalarmodesuffix): Update.
      	(sseunpackmode): Likewise.
      	(ssepackmode): Likewise.
      	(AVX256MODEI): New.
      	(AVX256MODE124): Likewise.
      	(AVX256MODE1248): Likewise.
      	(AVX256MODE248): Likewise.
      	(AVXMODE48P_SI): Likewise.
      	(AVXMODE48P_SI): Likewise.
      	(AVXMODE48P_DI): Likewise.
      	(AVXMODE48P_DI): Likewise.
      	(gthrfirstp): Likewise.
      	(gthrlastp): Likewise.
      	(avx2): Likwise.
      	(ssevecsize): Likewise.
      	(ssedoublesizemode): Likewise.
      	(avxvecmode): Likewise.
      	(avxvecsize): Likewise.
      	(avxhalfvecmode): Likewise.
      	(avxscalarmode): Likewise.
      	(avxpermvecmode): Likewise.
      	(avxmodesuffixp): Likewise.
      	(avxmodesuffix): Likewise.
      	(avx2_vec_dupv4sf): New.
      	(avx2_vec_dupv8sf): Likewise.
      	(avx2_interleave_highv4di): Likewise.
      	(avx2_interleave_lowv4di): Likewise.
      	(<plusminus_insn><mode>3): Update.
      	(*<plusminus_insn><mode>3): Likewise.
      	(sse2_<plusminus_insn><mode>3): Rename to ...
      	("<sse2_avx2>_<plusminus_insn><mode>3): ... this. updated.
      	(*sse2_<plusminus_insn><mode>3): Likewise.
      	(*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
      	(mulv8hi3): Likewise.
      	(mul<mode>3): Likewise.
      	(*mulv8hi3): Likewise.
      	(*mul<mode>3): Likewise.
      	(<s>mulv8hi3_highpart): Likewise.
      	(<s>mul<mode>3_highpart): Likewise.
      	(*<s>mulv8hi3_highpart): Likewise.
      	(*<s>mul<mode>3_highpart): Likewise.
      	(avx2_umulv4siv4di3): Likewise.
      	(*avx_umulv4siv4di3): Likewise.
      	(sse4_1_mulv2siv2di3): Likewise.
      	(<sse4_1_avx2>_mul<shortmode><mode>3): Likewise.
      	(*sse4_1_mulv2siv2di3): Likewise.
      	(*<sse4_1_avx2>_mulv2siv2di3): Likewise.
      	(avx2_pmaddwd): New.
      	(*avx2_pmaddwd): Likewise.
      	(mulv4si3): Rename to ...
      	(mul<mode>3): ... this. Update.
      	(*sse4_1_mulv4si3): Likewise.
      	(*<sse4_1_avx2>_mul<mode>3): Likewise.
      	(ashr<mode>3): Update.
      	(avx2_lshrqv4di3): New.
      	(lshr<mode>3): Update.
      	(avx2_lshlqv4di3): New.
      	(avx2_lshl<mode>3): Likewise.
      	(sse2_ashlv1ti3): Rename to ...
      	(<sse2_avx2>_ashl<mode>3): ... this. Update.
      	(avx2_<code><mode>3)<umaxmin>: New.
      	(*avx2_<code><mode>3)<umaxmin>: Likewise.
      	(avx2_<code><mode>3)<smaxmin>: New.
      	(*avx2_<code><mode>3)<smaxmin>: Likewise.
      	(avx2_eq<mode>3): Likewise.
      	(*avx2_eq<mode>3): Likewise.
      	(avx2_gt<mode>3): Likewise.
      	(sse2_andnot<mode>3): Rename to ...
      	(<sse2_avx2>_andnot<mode>3): ... this. Update.
      	(*andnot<mode>3): Update.
      	(<code><mode>3)<any_logic>: Update.
      	(*<code><mode>3)<any_logic>: Likewise.
      	(sse2_packsswb): Rename to ...
      	(<sse2_avx2>_packsswb): ... this. Update.
      	(sse2_packssdw): Likewise.
      	(<sse2_avx2>_packssdw): Likewise.
      	(sse2_packuswb): Likewise.
      	(<sse2_avx2>_packuswb): Likewise.
      	(avx2_interleave_highv32qi): New.
      	(avx2_interleave_lowv32qi): Likewise.
      	(avx2_interleave_highv16hi): Likewise.
      	(avx2_interleave_lowv16hi): Likewise.
      	(avx2_interleave_highv8si): Likewise.
      	(avx2_interleave_lowv8si): Likewise.
      	(avx2_pshufd): New
      	(avx2_pshufd_1): Likewise.
      	(avx2_pshuflwv3): Likewise.
      	(avx2_pshuflw_1): Likewise.
      	(avx2_pshufhwv3): Likewise.
      	(avx2_pshufhw_1): Likewise.
      	(avx2_uavgv32qi3): Likewise.
      	(*avx2_uavgv32qi3): Likewise.
      	(avx2_uavgv16hi3): Likewise.
      	(*avx2_uavgv16hi3): Likewise.
      	(sse2_psadbw): Rename to ...
      	(<sse2_avx2>_psadbw): ... this. Update.
      	(avx2_pmovmskb): New.
      	(avx2_phaddwv16hi3): Likewise.
      	(avx2_phadddv8si3): Likewise.
      	(avx2_phaddswv16hi3): Likewise.
      	(avx2_phsubwv16hi3): Likewise.
      	(avx2_phsubdv8si3): Likewise.
      	(avx2_phsubswv16hi3): Likewise.
      	(avx2_pmaddubsw256): Likewise.
      	(avx2_umulhrswv16hi3): Likewise.
      	(*avx2_umulhrswv16hi3): Likewise.
      	(ssse3_pshufbv16qi3): Rename to ...
      	(<ssse3_avx2>_pshufb<mode>3): ... this. Update.
      	(ssse3_psign<mode>3): Likewise.
      	(<ssse3_avx2>_psign<mode>3): Likewise.
      	(ssse3_palignrti): Likewise.
      	(<ssse3_avx2>_palignr<mode>): Likewise.
      	(abs<mode>2): Likewise.
      	(sse4_1_movntdqa): Rename to ...
      	(<sse4_1_avx2>_movntdqa): ... this. Update.
      	(sse4_1_mpsadbw): Likewise.
      	(<sse4_1_avx2>_mpsadbw): Likewise.
      	(avx2_packusdw): New.
      	(sse4_1_pblendvb): Rename to ...
      	(<sse4_1_avx2>_pblendvb): ... this. Update.
      	(sse4_1_pblendw): Likewise.
      	(<sse4_1_avx2>_pblendw): Likewise.
      	(avx2_pblendd<mode>): New.
      	(avx2_<code>v16qiv16hi2): Likewise.
      	(avx2_<code>v8qiv8si2): Likewise.
      	(avx2_<code>v8hiv8si2): Likewise.
      	(avx2_<code>v4qiv4di2): Likewise.
      	(avx2_<code>v4hiv4di2): Likewise.
      	(avx2_<code>v4siv4di2): Likewise.
      	(avx2_pbroadcast<mode>): Likewise.
      	(avx2_permvarv8si): Likewise.
      	(avx2_permv4df): Likewise.
      	(avx2_permvarv8sf): Likewise.
      	(avx2_permv4di): Likewise.
      	(avx2_permv2ti): Likewise.
      	(avx2_vec_dupv4df): Likewise.
      	(avx2_vbroadcasti128_<mode>): Likewise.
      	(avx2_vec_set_lo_v4di): Likewise.
      	(avx2_vec_set_hi_v4di): Likewise.
      	(avx_maskload<ssemodesuffix><avxsizesuffix>): Rename to ...
      	(<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): ... this.
      	Update.
      	(avx_maskstore<ssemodesuffix><avxsizesuffix>): Likewise.
      	(<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Likewise.
      	(*avx2_maskmov<avx2modesuffix><avxmodesuffix>): New.
      	(avx2_extracti128): Likewise.
      	(avx2_inserti128): Likewise.
      	(avx2_ashrvv8si): Likewise.
      	(avx2_ashrvv4si): Likewise.
      	(avx2_<lshift>vv8si): Likewise.
      	(avx2_<lshift>v<mode>): Likewise.
      	(avx2_<lshift>vv2di): Likewise.
      	(avx2_gathersi<mode>): Likewise.
      	(*avx2_gathersi<mode>): Likewise.
      	(avx2_gatherdi<mode>): Likewise.
      	(*avx2_gatherdi<mode>): Likewise.
      	(avx2_gatherdi<mode>256): Likewise.
      	(*avx2_gatherdi<mode>256): Likewise.
      	* doc/extend.texi: Document AVX2 built-in functions.
      	* doc/invoke.texi: Document -mavx2.
      
      From-SVN: r177955
      Kirill Yukhin committed
    • pr49994-2.c: Add dg-require-effective-target scheduling. · bdb7daeb
      	
      	* gcc.dg/pr49994-2.c: Add dg-require-effective-target scheduling.
      	* gcc.dg/pr49994-3.c: Ditto.
      
      From-SVN: r177954
      Georg-Johann Lay committed
    • revert: t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if tm_defines contains… · 1ad1ae80
      revert: t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if tm_defines contains MIPS_ABI_DEFAULT ABI_32...
      
      2011-08-22  Matthias Klose <doko@debian.org>
      
              Revert:
              2011-07-11  Arthur Loiret  <aloiret@debian.org>
                          Matthias Klose <doko@debian.org>
              * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
              tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
              convention.
              * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
      
      From-SVN: r177953
      Matthias Klose committed
    • re PR middle-end/50145 (FAIL: gcc.dg/torture/pr50067-*.c -O* execution test on powerpc*-*-*) · ed90b673
      2011-08-22  Richard Guenther  <rguenther@suse.de>
      
      	PR testsuite/50145
      	* gcc.dg/torture/pr50067-1.c: Run on little-endian systems only.
      	* gcc.dg/torture/pr50067-2.c: Likewise.
      
      From-SVN: r177952
      Richard Guenther committed
    • re PR bootstrap/50146 (unused variable saved_nregs in ira-color.c broke… · fbddb81d
      re PR bootstrap/50146 (unused variable saved_nregs in ira-color.c broke arm-linux-gnueabi bootstrap)
      
      	PR bootstrap/50146
      	* ira-color.c (assign_hard_reg): Move saved_nregs declaration
      	to #ifndef HONOR_REG_ALLOC_ORDER block.
      
      From-SVN: r177951
      Mikael Pettersson committed
    • Daily bump. · ba259d52
      From-SVN: r177949
      GCC Administrator committed
  3. 21 Aug, 2011 1 commit