OSDN Git Service

pf3gnuchains/gcc-fork.git
12 years ago2011-08-25 Richard Guenther <rguenther@suse.de>
rguenth [Thu, 25 Aug 2011 13:24:34 +0000 (13:24 +0000)]
2011-08-25  Richard Guenther  <rguenther@suse.de>

* gcc.dg/Wshadow-3.c: Restore original content destroyed by r148442.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178061 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-25 Andrew Haley <aph@redhat.com>
aph [Thu, 25 Aug 2011 10:37:36 +0000 (10:37 +0000)]
2011-08-25  Andrew Haley  <aph@redhat.com>

        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
        instructions.
        * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178060 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * doc/md.texi (automata_option): Document collapse-ndfa.
bernds [Thu, 25 Aug 2011 10:30:13 +0000 (10:30 +0000)]
* doc/md.texi (automata_option): Document collapse-ndfa.
* genautomata.c (COLLAPSE_OPTION): New macro.
(collapse_flag): New static variable.
(struct description): New member normal_decls_num.
(struct automaton): New members advance_ainsn and collapse_ainsn.
(gen_automata_option): Check for COLLAPSE_OPTION.
(collapse_ndfa_insn_decl): New static variable.
(add_collapse_ndfa_insn_decl, special_decl_p): New functions.
(find_arc): If insn is the collapse-ndfa insn, accept any arc we
find.
(transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
necessary.  Use normal_decls_num rather than decls_num, remove
test for special decls.
(create_alt_states, form_ainsn_with_same_reservs): Use
special_decl_p.
(make_automaton); Likewise.  Use the new advance_cycle_insn member
of struct automaton.
(create_composed_state): Disallow advance-cycle arcs if collapse_flag
is set.
(NDFA_to_DFA): Don't create composed states for the collapse-ndfa
transition.  Create the necessary transitions for it.
(create_ainsns): Return void.  Take an automaton_t argument, and
update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
callers changed.
(COLLAPSE_NDFA_VALUE_NAME): New macro.
(output_tables): Output code to define it.
(output_internal_insn_code_evaluation): Output code to accept
const0_rtx as collapse-ndfa transition.
(output_default_latencies, output_print_reservation_func,
output_print_description): Reorganize loops to use normal_decls_num
as loop bound; remove special case for advance_cycle_insn_decl.
(initiate_automaton_gen): Handle COLLAPSE_OPTION.
(check_automata_insn_issues): Check for collapse_ainsn.
(expand_automate): Allocate sufficient space.  Initialize
normal_decls_num.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178059 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/avr/avr.md: Fix indentation from r177991.
gjl [Thu, 25 Aug 2011 10:27:18 +0000 (10:27 +0000)]
* config/avr/avr.md: Fix indentation from r177991.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178058 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * regrename.c (struct du_head): Remove member terminated.
bernds [Thu, 25 Aug 2011 10:12:35 +0000 (10:12 +0000)]
* regrename.c (struct du_head): Remove member terminated.
(create_new_chain): Don't initialize it.
(scan_rtx_reg): Don't set or test it, test the open_chains_set
bitmap instead.
(tick, this_tick): New global variables, moved out of
regrename_optimize.
(current_id, open_chains, closed_chains, open_chains_set,
live_in_chains, live_hard_regs): Reorder declarations.
(dump_def_use_chain): Move function earlier in the file.
(rename_chains): New static function, broken out of
regrename_optimize.
(regrename_optimize): Use it.  Remove #if 0'ed code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178057 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDon't assume hg convert in gcc_update
ro [Thu, 25 Aug 2011 09:16:52 +0000 (09:16 +0000)]
Don't assume hg convert in gcc_update

* gcc_update: Determine svn branch from hg convert_revision.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178056 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
aldot [Thu, 25 Aug 2011 08:49:01 +0000 (08:49 +0000)]
2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* varasm.c: (default_binds_local_p_1): Commentary typo fix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178055 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Thu, 25 Aug 2011 00:18:57 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178053 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogccgo: fixes to ast-dump, refactoring of export and ast-dump
ian [Wed, 24 Aug 2011 19:22:44 +0000 (19:22 +0000)]
gccgo:  fixes to ast-dump, refactoring of export and ast-dump
        to implement a common interface for writing basic
        type literals and added flags for optimization.

* lang.opt: Add fgo-optimize-.
* go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize.
* go-c.h (go_enable_optimize): Declare.
* Make-lang.in (GO_OBJS): Add go/go-optimize.o.
(GO_EXPORT_H): Define.
(GO_IMPORT_H): Add $(GO_EXPORT_H).
(GO_AST_DUMP_H): Define.
(go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H.
(go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H.
(go/types.o): Likewise.
(go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H.
(go/go-optimize.o): New target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178046 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoMention PR target/50172.
hjl [Wed, 24 Aug 2011 13:25:22 +0000 (13:25 +0000)]
Mention PR target/50172.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178040 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoConvert to Pmode if needed.
hjl [Wed, 24 Aug 2011 13:24:07 +0000 (13:24 +0000)]
Convert to Pmode if needed.

2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if
needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178039 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Tobias Burnus <burnus@net-b.de>
burnus [Wed, 24 Aug 2011 13:11:08 +0000 (13:11 +0000)]
2011-08-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50163
        * expr.c (check_init_expr): Return when an error
        occured.

2011-08-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50163
        * gfortran.dg/initialization_28.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178038 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 24 Aug 2011 12:55:18 +0000 (12:55 +0000)]
2011-08-24  Richard Guenther  <rguenther@suse.de>

* tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
ref in the basic-block case.  Move stripping array-refs
to the place we create an access-function for it.  Remove
bogus stripping down a MEM_REF to its base.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178037 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 24 Aug 2011 12:51:45 +0000 (12:51 +0000)]
2011-08-24  Richard Guenther  <rguenther@suse.de>

* fold-const.c (fold_comparison): Fold &a < &a + 4 even
with -fno-strict-overflow.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178036 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 24 Aug 2011 11:26:42 +0000 (11:26 +0000)]
2011-08-24  Richard Guenther  <rguenther@suse.de>

* tree-vectorizer.c (vect_print_dump_info): Avoid the
file and location clutter when dumping to dump files.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178034 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 24 Aug 2011 11:16:57 +0000 (11:16 +0000)]
2011-08-24  Richard Guenther  <rguenther@suse.de>

PR c/49396

c-family/
* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Fix conditional.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178032 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Simon Baldwin <simonb@google.com>
simonb [Wed, 24 Aug 2011 11:14:56 +0000 (11:14 +0000)]
2011-08-24  Simon Baldwin  <simonb@google.com>

* gengtype-state.c (write_state): Remove timestamped header line.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178031 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
jsm28 [Wed, 24 Aug 2011 10:47:06 +0000 (10:47 +0000)]
* Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
(CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
(CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
(CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
(collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
(c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
(intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
rules.
(lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).

ada:
* gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
(CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
(CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
(ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
(ada/initialize.o, ada/raise.o): Remove explicit compilation rules.

fortran:
* Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.

go:
* Make-lang.in (CFLAGS-go/go-lang.o): New.
(go/go-lang.o): Remove explicit compilation rule.

java:
* Make-lang.in (CFLAGS-java/jcf-io.o, CFLAGS-java/jcf-path.o):
New.
(java/jcf-io.o, java/jcf-path.o): Remove explicit compilation
rules.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178030 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
jsm28 [Wed, 24 Aug 2011 10:42:11 +0000 (10:42 +0000)]
* Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178029 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-24 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 24 Aug 2011 10:07:20 +0000 (10:07 +0000)]
2011-08-24  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/50067
* tree-data-ref.c (dr_analyze_indices): Do not add an access
function for a MEM_REF base that has no evolution in the loop
nest or that is not analyzable.

* gcc.dg/torture/pr50067-3.c: New testcase.
* gcc.dg/torture/pr50067-4.c: Likewise.
* gcc.dg/torture/pr50067-5.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178028 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Wed, 24 Aug 2011 00:18:53 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178023 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Tue, 23 Aug 2011 23:06:04 +0000 (23:06 +0000)]
2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>

* ira.c (ira_init_register_move_cost): Check small subclasses
through ira_reg_class_max_nregs and ira_available_class_regs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178019 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Steve Ellcey <sje@cup.hp.com>
sje [Tue, 23 Aug 2011 21:32:34 +0000 (21:32 +0000)]
2011-08-23  Steve Ellcey  <sje@cup.hp.com>

PR libstdc++/50153
* inclhack.def (hpux11_abs): Extend to all hpux machines.
* fixincl.x: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178018 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/sse-22.c: Rearrange to fix sse-22a.c failure.
uros [Tue, 23 Aug 2011 21:14:10 +0000 (21:14 +0000)]
* config/i386/sse-22.c: Rearrange to fix sse-22a.c failure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178017 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/constraints.md (Yp): New register constraint.
uros [Tue, 23 Aug 2011 20:00:27 +0000 (20:00 +0000)]
* config/i386/constraints.md (Yp): New register constraint.
* config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
Yp register constraint.
(*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
(*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
(*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178011 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoAdd AVX2 testcases.
hjl [Tue, 23 Aug 2011 19:29:54 +0000 (19:29 +0000)]
Add AVX2 testcases.

gcc/

2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>

* config/i386/sse.md (<s>mul<mode>3_highpart): Update.

gcc/testsuite/

2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>

* g++.dg/other/i386-2.C: Add -mavx2 check.
* g++.dg/other/i386-3.C: Likewise.
* gcc.target/i386/avx-1.c: Add AVX2.
* gcc.target/i386/avx-2.c: Likewise.
* gcc.target/i386/funcspec-5.c: Likewise.
* gcc.target/i386/sse-12.c: Likewise.
* 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.
* gcc.target/i386/i386.exp (check_effective_target_avx2): Likewise.
* gcc.target/i386/avx2-check.h: New.
* gcc.target/i386/avx2-i32gatherd-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherd-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherd-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherd-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherd256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherd256-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherd256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherd256-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd256-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherpd256-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherps-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherps-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherps-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherps-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherps256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherps256-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherps256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherps256-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherq-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherq-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherq-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherq-4.c: Likewise.
* gcc.target/i386/avx2-i32gatherq256-1.c: Likewise.
* gcc.target/i386/avx2-i32gatherq256-2.c: Likewise.
* gcc.target/i386/avx2-i32gatherq256-3.c: Likewise.
* gcc.target/i386/avx2-i32gatherq256-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherd-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherd-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherd-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherd-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherd256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherd256-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherd256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherd256-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd256-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherpd256-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherps-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherps-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherps-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherps-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherps256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherps256-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherps256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherps256-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherq-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherq-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherq-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherq-4.c: Likewise.
* gcc.target/i386/avx2-i64gatherq256-1.c: Likewise.
* gcc.target/i386/avx2-i64gatherq256-2.c: Likewise.
* gcc.target/i386/avx2-i64gatherq256-3.c: Likewise.
* gcc.target/i386/avx2-i64gatherq256-4.c: Likewise.
* gcc.target/i386/avx2-mpsadbw-1.c: Likewise.
* gcc.target/i386/avx2-mpsadbw-2.c: Likewise.
* gcc.target/i386/avx2-vbroadcastsd_pd-1.c: Likewise.
* gcc.target/i386/avx2-vbroadcastsd_pd-2.c: Likewise.
* gcc.target/i386/avx2-vbroadcastsi128-1.c: Likewise.
* gcc.target/i386/avx2-vbroadcastsi128-2.c: Likewise.
* gcc.target/i386/avx2-vbroadcastss_ps-1.c: Likewise.
* gcc.target/i386/avx2-vbroadcastss_ps-2.c: Likewise.
* gcc.target/i386/avx2-vbroadcastss_ps256-1.c: Likewise.
* gcc.target/i386/avx2-vbroadcastss_ps256-2.c: Likewise.
* gcc.target/i386/avx2-vextracti128-1.c: Likewise.
* gcc.target/i386/avx2-vextracti128-2.c: Likewise.
* gcc.target/i386/avx2-vinserti128-1.c: Likewise.
* gcc.target/i386/avx2-vinserti128-2.c: Likewise.
* gcc.target/i386/avx2-vmovmskb-2.c: Likewise.
* gcc.target/i386/avx2-vmovntdqa-1.c: Likewise.
* gcc.target/i386/avx2-vmovntdqa-2.c: Likewise.
* gcc.target/i386/avx2-vpabsb256-1.c: Likewise.
* gcc.target/i386/avx2-vpabsb256-2.c: Likewise.
* gcc.target/i386/avx2-vpabsd256-1.c: Likewise.
* gcc.target/i386/avx2-vpabsd256-2.c: Likewise.
* gcc.target/i386/avx2-vpabsw256-1.c: Likewise.
* gcc.target/i386/avx2-vpabsw256-2.c: Likewise.
* gcc.target/i386/avx2-vpackssdw-1.c: Likewise.
* gcc.target/i386/avx2-vpackssdw-2.c: Likewise.
* gcc.target/i386/avx2-vpacksswb-1.c: Likewise.
* gcc.target/i386/avx2-vpacksswb-2.c: Likewise.
* gcc.target/i386/avx2-vpackusdw-1.c: Likewise.
* gcc.target/i386/avx2-vpackusdw-2.c: Likewise.
* gcc.target/i386/avx2-vpackuswb-1.c: Likewise.
* gcc.target/i386/avx2-vpackuswb-2.c: Likewise.
* gcc.target/i386/avx2-vpaddb-1.c: Likewise.
* gcc.target/i386/avx2-vpaddb-2.c: Likewise.
* gcc.target/i386/avx2-vpaddd-1.c: Likewise.
* gcc.target/i386/avx2-vpaddd-2.c: Likewise.
* gcc.target/i386/avx2-vpaddq-1.c: Likewise.
* gcc.target/i386/avx2-vpaddq-2.c: Likewise.
* gcc.target/i386/avx2-vpaddsb-1.c: Likewise.
* gcc.target/i386/avx2-vpaddsb-2.c: Likewise.
* gcc.target/i386/avx2-vpaddsw-1.c: Likewise.
* gcc.target/i386/avx2-vpaddsw-2.c: Likewise.
* gcc.target/i386/avx2-vpaddusb-1.c: Likewise.
* gcc.target/i386/avx2-vpaddusb-2.c: Likewise.
* gcc.target/i386/avx2-vpaddusw-1.c: Likewise.
* gcc.target/i386/avx2-vpaddusw-2.c: Likewise.
* gcc.target/i386/avx2-vpaddw-1.c: Likewise.
* gcc.target/i386/avx2-vpaddw-2.c: Likewise.
* gcc.target/i386/avx2-vpalignr256-1.c: Likewise.
* gcc.target/i386/avx2-vpalignr256-2.c: Likewise.
* gcc.target/i386/avx2-vpand-1.c: Likewise.
* gcc.target/i386/avx2-vpand-2.c: Likewise.
* gcc.target/i386/avx2-vpandn-1.c: Likewise.
* gcc.target/i386/avx2-vpandn-2.c: Likewise.
* gcc.target/i386/avx2-vpavgb-1.c: Likewise.
* gcc.target/i386/avx2-vpavgb-2.c: Likewise.
* gcc.target/i386/avx2-vpavgw-1.c: Likewise.
* gcc.target/i386/avx2-vpavgw-2.c: Likewise.
* gcc.target/i386/avx2-vpblendd128-1.c: Likewise.
* gcc.target/i386/avx2-vpblendd128-2.c: Likewise.
* gcc.target/i386/avx2-vpblendd256-1.c: Likewise.
* gcc.target/i386/avx2-vpblendd256-2.c: Likewise.
* gcc.target/i386/avx2-vpblendvb-1.c: Likewise.
* gcc.target/i386/avx2-vpblendvb-2.c: Likewise.
* gcc.target/i386/avx2-vpblendw-1.c: Likewise.
* gcc.target/i386/avx2-vpblendw-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastb128-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastb128-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastb256-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastb256-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastd128-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastd128-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastd256-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastd256-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastq128-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastq128-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastq256-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastq256-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastw128-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastw128-2.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastw256-1.c: Likewise.
* gcc.target/i386/avx2-vpbroadcastw256-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqb-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqb-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqd-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqd-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqq-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqq-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqw-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpeqw-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtb-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtb-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtd-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtd-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtq-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtq-2.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtw-1.c: Likewise.
* gcc.target/i386/avx2-vpcmpgtw-2.c: Likewise.
* gcc.target/i386/avx2-vperm2i128-1.c: Likewise.
* gcc.target/i386/avx2-vperm2i128-2.c: Likewise.
* gcc.target/i386/avx2-vpermd-1.c: Likewise.
* gcc.target/i386/avx2-vpermd-2.c: Likewise.
* gcc.target/i386/avx2-vpermpd-1.c: Likewise.
* gcc.target/i386/avx2-vpermpd-2.c: Likewise.
* gcc.target/i386/avx2-vpermps-1.c: Likewise.
* gcc.target/i386/avx2-vpermps-2.c: Likewise.
* gcc.target/i386/avx2-vpermq-1.c: Likewise.
* gcc.target/i386/avx2-vpermq-2.c: Likewise.
* gcc.target/i386/avx2-vphaddd-1.c: Likewise.
* gcc.target/i386/avx2-vphaddd-2.c: Likewise.
* gcc.target/i386/avx2-vphaddsw-1.c: Likewise.
* gcc.target/i386/avx2-vphaddsw-2.c: Likewise.
* gcc.target/i386/avx2-vphaddw-1.c: Likewise.
* gcc.target/i386/avx2-vphaddw-2.c: Likewise.
* gcc.target/i386/avx2-vphsubd-1.c: Likewise.
* gcc.target/i386/avx2-vphsubd-2.c: Likewise.
* gcc.target/i386/avx2-vphsubsw-1.c: Likewise.
* gcc.target/i386/avx2-vphsubsw-2.c: Likewise.
* gcc.target/i386/avx2-vphsubw-1.c: Likewise.
* gcc.target/i386/avx2-vpmaddubsw-1.c: Likewise.
* gcc.target/i386/avx2-vpmaddubsw-2.c: Likewise.
* gcc.target/i386/avx2-vpmaddwd-1.c: Likewise.
* gcc.target/i386/avx2-vpmaddwd-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadd-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadd-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadd256-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadd256-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadq-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadq-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadq256-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskloadq256-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskstored-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskstored-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskstored256-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskstored256-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskstoreq-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskstoreq-2.c: Likewise.
* gcc.target/i386/avx2-vpmaskstoreq256-1.c: Likewise.
* gcc.target/i386/avx2-vpmaskstoreq256-2.c: Likewise.
* gcc.target/i386/avx2-vpmaxsb-1.c: Likewise.
* gcc.target/i386/avx2-vpmaxsb-2.c: Likewise.
* gcc.target/i386/avx2-vpmaxsd-1.c: Likewise.
* gcc.target/i386/avx2-vpmaxsd-2.c: Likewise.
* gcc.target/i386/avx2-vpmaxsw-1.c: Likewise.
* gcc.target/i386/avx2-vpmaxsw-2.c: Likewise.
* gcc.target/i386/avx2-vpmaxub-1.c: Likewise.
* gcc.target/i386/avx2-vpmaxub-2.c: Likewise.
* gcc.target/i386/avx2-vpmaxud-1.c: Likewise.
* gcc.target/i386/avx2-vpmaxud-2.c: Likewise.
* gcc.target/i386/avx2-vpmaxuw-1.c: Likewise.
* gcc.target/i386/avx2-vpmaxuw-2.c: Likewise.
* gcc.target/i386/avx2-vpminsb-1.c: Likewise.
* gcc.target/i386/avx2-vpminsb-2.c: Likewise.
* gcc.target/i386/avx2-vpminsd-1.c: Likewise.
* gcc.target/i386/avx2-vpminsd-2.c: Likewise.
* gcc.target/i386/avx2-vpminsw-1.c: Likewise.
* gcc.target/i386/avx2-vpminsw-2.c: Likewise.
* gcc.target/i386/avx2-vpminub-1.c: Likewise.
* gcc.target/i386/avx2-vpminub-2.c: Likewise.
* gcc.target/i386/avx2-vpminud-1.c: Likewise.
* gcc.target/i386/avx2-vpminud-2.c: Likewise.
* gcc.target/i386/avx2-vpminuw-1.c: Likewise.
* gcc.target/i386/avx2-vpminuw-2.c: Likewise.
* gcc.target/i386/avx2-vpmovmskb-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxbd-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxbd-2.c: Likewise.
* gcc.target/i386/avx2-vpmovsxbq-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxbq-2.c: Likewise.
* gcc.target/i386/avx2-vpmovsxbw-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxbw-2.c: Likewise.
* gcc.target/i386/avx2-vpmovsxdq-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxdq-2.c: Likewise.
* gcc.target/i386/avx2-vpmovsxwd-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxwd-2.c: Likewise.
* gcc.target/i386/avx2-vpmovsxwq-1.c: Likewise.
* gcc.target/i386/avx2-vpmovsxwq-2.c: Likewise.
* gcc.target/i386/avx2-vpmovzxbd-1.c: Likewise.
* gcc.target/i386/avx2-vpmovzxbd-2.c: Likewise.
* gcc.target/i386/avx2-vpmovzxbq-1.c: Likewise.
* gcc.target/i386/avx2-vpmovzxbq-2.c: Likewise.
* gcc.target/i386/avx2-vpmovzxbw-1.c: Likewise.
* gcc.target/i386/avx2-vpmovzxbw-2.c: Likewise.
* gcc.target/i386/avx2-vpmovzxdq-1.c: Likewise.
* gcc.target/i386/avx2-vpmovzxdq-2.c: Likewise.
* gcc.target/i386/avx2-vpmovzxwd-1.c: Likewise.
* gcc.target/i386/avx2-vpmovzxwd-2.c: Likewise.
* gcc.target/i386/avx2-vpmovzxwq-1.c: Likewise.
* gcc.target/i386/avx2-vpmovzxwq-2.c: Likewise.
* gcc.target/i386/avx2-vpmuldq-1.c: Likewise.
* gcc.target/i386/avx2-vpmuldq-2.c: Likewise.
* gcc.target/i386/avx2-vpmulhrsw-1.c: Likewise.
* gcc.target/i386/avx2-vpmulhrsw-2.c: Likewise.
* gcc.target/i386/avx2-vpmulhuw-1.c: Likewise.
* gcc.target/i386/avx2-vpmulhuw-2.c: Likewise.
* gcc.target/i386/avx2-vpmulhw-1.c: Likewise.
* gcc.target/i386/avx2-vpmulhw-2.c: Likewise.
* gcc.target/i386/avx2-vpmulld-1.c: Likewise.
* gcc.target/i386/avx2-vpmulld-2.c: Likewise.
* gcc.target/i386/avx2-vpmullw-1.c: Likewise.
* gcc.target/i386/avx2-vpmullw-2.c: Likewise.
* gcc.target/i386/avx2-vpmuludq-1.c: Likewise.
* gcc.target/i386/avx2-vpmuludq-2.c: Likewise.
* gcc.target/i386/avx2-vpor-1.c: Likewise.
* gcc.target/i386/avx2-vpor-2.c: Likewise.
* gcc.target/i386/avx2-vpsadbw-1.c: Likewise.
* gcc.target/i386/avx2-vpsadbw-2.c: Likewise.
* gcc.target/i386/avx2-vpshufb-1.c: Likewise.
* gcc.target/i386/avx2-vpshufb-2.c: Likewise.
* gcc.target/i386/avx2-vpshufd-1.c: Likewise.
* gcc.target/i386/avx2-vpshufd-2.c: Likewise.
* gcc.target/i386/avx2-vpshufhw-1.c: Likewise.
* gcc.target/i386/avx2-vpshufhw-2.c: Likewise.
* gcc.target/i386/avx2-vpshuflw-1.c: Likewise.
* gcc.target/i386/avx2-vpshuflw-2.c: Likewise.
* gcc.target/i386/avx2-vpsignb-1.c: Likewise.
* gcc.target/i386/avx2-vpsignb-2.c: Likewise.
* gcc.target/i386/avx2-vpsignd-1.c: Likewise.
* gcc.target/i386/avx2-vpsignd-2.c: Likewise.
* gcc.target/i386/avx2-vpsignw-1.c: Likewise.
* gcc.target/i386/avx2-vpsignw-2.c: Likewise.
* gcc.target/i386/avx2-vpslld-1.c: Likewise.
* gcc.target/i386/avx2-vpslld-2.c: Likewise.
* gcc.target/i386/avx2-vpslldi-1.c: Likewise.
* gcc.target/i386/avx2-vpslldi-2.c: Likewise.
* gcc.target/i386/avx2-vpslldq-1.c: Likewise.
* gcc.target/i386/avx2-vpslldq-2.c: Likewise.
* gcc.target/i386/avx2-vpsllq-1.c: Likewise.
* gcc.target/i386/avx2-vpsllq-2.c: Likewise.
* gcc.target/i386/avx2-vpsllqi-1.c: Likewise.
* gcc.target/i386/avx2-vpsllqi-2.c: Likewise.
* gcc.target/i386/avx2-vpsllvd128-1.c: Likewise.
* gcc.target/i386/avx2-vpsllvd128-2.c: Likewise.
* gcc.target/i386/avx2-vpsllvd256-1.c: Likewise.
* gcc.target/i386/avx2-vpsllvd256-2.c: Likewise.
* gcc.target/i386/avx2-vpsllvq128-1.c: Likewise.
* gcc.target/i386/avx2-vpsllvq128-2.c: Likewise.
* gcc.target/i386/avx2-vpsllvq256-1.c: Likewise.
* gcc.target/i386/avx2-vpsllvq256-2.c: Likewise.
* gcc.target/i386/avx2-vpsllw-1.c: Likewise.
* gcc.target/i386/avx2-vpsllw-2.c: Likewise.
* gcc.target/i386/avx2-vpsllwi-1.c: Likewise.
* gcc.target/i386/avx2-vpsllwi-2.c: Likewise.
* gcc.target/i386/avx2-vpsrad-1.c: Likewise.
* gcc.target/i386/avx2-vpsrad-2.c: Likewise.
* gcc.target/i386/avx2-vpsradi-1.c: Likewise.
* gcc.target/i386/avx2-vpsradi-2.c: Likewise.
* gcc.target/i386/avx2-vpsravd128-1.c: Likewise.
* gcc.target/i386/avx2-vpsravd128-2.c: Likewise.
* gcc.target/i386/avx2-vpsravd256-1.c: Likewise.
* gcc.target/i386/avx2-vpsravd256-2.c: Likewise.
* gcc.target/i386/avx2-vpsraw-1.c: Likewise.
* gcc.target/i386/avx2-vpsraw-2.c: Likewise.
* gcc.target/i386/avx2-vpsrawi-1.c: Likewise.
* gcc.target/i386/avx2-vpsrawi-2.c: Likewise.
* gcc.target/i386/avx2-vpsrld-1.c: Likewise.
* gcc.target/i386/avx2-vpsrld-2.c: Likewise.
* gcc.target/i386/avx2-vpsrldi-1.c: Likewise.
* gcc.target/i386/avx2-vpsrldi-2.c: Likewise.
* gcc.target/i386/avx2-vpsrldq-1.c: Likewise.
* gcc.target/i386/avx2-vpsrldq-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlq-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlq-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlqi-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlqi-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlvd128-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlvd128-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlvd256-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlvd256-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlvq128-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlvq128-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlvq256-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlvq256-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlw-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlw-2.c: Likewise.
* gcc.target/i386/avx2-vpsrlwi-1.c: Likewise.
* gcc.target/i386/avx2-vpsrlwi-2.c: Likewise.
* gcc.target/i386/avx2-vpsubb-1.c: Likewise.
* gcc.target/i386/avx2-vpsubb-2.c: Likewise.
* gcc.target/i386/avx2-vpsubd-1.c: Likewise.
* gcc.target/i386/avx2-vpsubd-2.c: Likewise.
* gcc.target/i386/avx2-vpsubq-1.c: Likewise.
* gcc.target/i386/avx2-vpsubq-2.c: Likewise.
* gcc.target/i386/avx2-vpsubsb-1.c: Likewise.
* gcc.target/i386/avx2-vpsubsb-2.c: Likewise.
* gcc.target/i386/avx2-vpsubsw-1.c: Likewise.
* gcc.target/i386/avx2-vpsubsw-2.c: Likewise.
* gcc.target/i386/avx2-vpsubusb-1.c: Likewise.
* gcc.target/i386/avx2-vpsubusb-2.c: Likewise.
* gcc.target/i386/avx2-vpsubusw-1.c: Likewise.
* gcc.target/i386/avx2-vpsubusw-2.c: Likewise.
* gcc.target/i386/avx2-vpunpckhbw-1.c: Likewise.
* gcc.target/i386/avx2-vpunpckhbw-2.c: Likewise.
* gcc.target/i386/avx2-vpunpckhdq-1.c: Likewise.
* gcc.target/i386/avx2-vpunpckhdq-2.c: Likewise.
* gcc.target/i386/avx2-vpunpckhqdq-1.c: Likewise.
* gcc.target/i386/avx2-vpunpckhqdq-2.c: Likewise.
* gcc.target/i386/avx2-vpunpckhwd-1.c: Likewise.
* gcc.target/i386/avx2-vpunpckhwd-2.c: Likewise.
* gcc.target/i386/avx2-vpunpcklbw-1.c: Likewise.
* gcc.target/i386/avx2-vpunpcklbw-2.c: Likewise.
* gcc.target/i386/avx2-vpunpckldq-1.c: Likewise.
* gcc.target/i386/avx2-vpunpckldq-2.c: Likewise.
* gcc.target/i386/avx2-vpunpcklqdq-1.c: Likewise.
* gcc.target/i386/avx2-vpunpcklqdq-2.c: Likewise.
* gcc.target/i386/avx2-vpunpcklwd-1.c: Likewise.
* gcc.target/i386/avx2-vpunpcklwd-2.c: Likewise.
* gcc.target/i386/avx2-vpxor-1.c: Likewise.
* gcc.target/i386/avx2-vpxor-2.c: Likewise.
* gcc.target/i386/testimm-9.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178006 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Mark Heffernan <meheff@google.com>
meheff [Tue, 23 Aug 2011 18:06:42 +0000 (18:06 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178004 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoAdd BMI2 support.
hjl [Tue, 23 Aug 2011 17:02:15 +0000 (17:02 +0000)]
Add BMI2 support.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178001 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * typeck2.c (build_functional_cast): Don't try to avoid calling
jason [Tue, 23 Aug 2011 16:03:57 +0000 (16:03 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177999 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/49045
jason [Tue, 23 Aug 2011 16:03:44 +0000 (16:03 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177998 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * tree.c (build_target_expr): Set TREE_CONSTANT on
jason [Tue, 23 Aug 2011 16:03:35 +0000 (16:03 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177997 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago Core 903 (partial)
jason [Tue, 23 Aug 2011 16:03:25 +0000 (16:03 +0000)]
Core 903 (partial)
* call.c (null_ptr_cst_p): Only 0 qualifies in C++11.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177996 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago Core 975
jason [Tue, 23 Aug 2011 16:03:15 +0000 (16:03 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177995 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/50024
jason [Tue, 23 Aug 2011 16:03:01 +0000 (16:03 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177994 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * semantics.c (potential_constant_expression_1): Allow 'this'.
jason [Tue, 23 Aug 2011 16:02:50 +0000 (16:02 +0000)]
* semantics.c (potential_constant_expression_1): Allow 'this'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177993 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/50158
jakub [Tue, 23 Aug 2011 15:53:18 +0000 (15:53 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177992 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR middle-end/50161
jakub [Tue, 23 Aug 2011 15:51:45 +0000 (15:51 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177991 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/50055
jason [Tue, 23 Aug 2011 14:56:48 +0000 (14:56 +0000)]
PR c++/50055
* except.c (begin_eh_spec_block): Build EH_SPEC block on the
same line as the function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177990 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
matz [Tue, 23 Aug 2011 14:38:24 +0000 (14:38 +0000)]
* cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
(gimple_expand_cfg): Merge alignment info for coalesced pointer
SSA names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177989 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR c++/46862
jakub [Tue, 23 Aug 2011 13:20:04 +0000 (13:20 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177987 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 23 Aug 2011 12:40:57 +0000 (12:40 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177986 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Tobias Burnus <burnus@net-b.de>
burnus [Tue, 23 Aug 2011 12:13:34 +0000 (12:13 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177985 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 23 Aug 2011 10:20:26 +0000 (10:20 +0000)]
2011-08-23  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/50162
* tree-vect-stmts.c (vectorizable_call): Fix argument lookup.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177984 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-23 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 23 Aug 2011 08:32:23 +0000 (08:32 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177983 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Tue, 23 Aug 2011 00:18:51 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177982 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/64/sfp-machine.h (ASM_INVALID): New define.
uros [Mon, 22 Aug 2011 23:13:57 +0000 (23:13 +0000)]
* config/i386/64/sfp-machine.h (ASM_INVALID): New define.
(ASM_DIVZERO): Ditto.
(FP_HANLDE_EXCEPTIONS): Use ASM_INVALID and ASM_DIVZERO.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177978 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * ChangeLog: Add missing change.
uros [Mon, 22 Aug 2011 21:02:34 +0000 (21:02 +0000)]
* ChangeLog: Add missing change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177975 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR target/50155
uros [Mon, 22 Aug 2011 21:01:46 +0000 (21:01 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177974 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoAdd ability to force lexed tokens' source_locations.
gchare [Mon, 22 Aug 2011 20:41:07 +0000 (20:41 +0000)]
Add ability to force lexed tokens' source_locations.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177973 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
aesok [Mon, 22 Aug 2011 20:26:26 +0000 (20:26 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177971 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * ChangeLog: Additional fixes for AVX2 ChangeLog entry.
uros [Mon, 22 Aug 2011 19:18:44 +0000 (19:18 +0000)]
* ChangeLog: Additional fixes for AVX2 ChangeLog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177969 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
bernds [Mon, 22 Aug 2011 18:00:33 +0000 (18:00 +0000)]
* config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
to make computed_jump_p return true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177968 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoCentralize PICFLAG configuration
ro [Mon, 22 Aug 2011 16:54:02 +0000 (16:54 +0000)]
Centralize PICFLAG configuration

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177967 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * ChangeLog: Fix and enhance ChangeLog entry.
uros [Mon, 22 Aug 2011 16:50:10 +0000 (16:50 +0000)]
* ChangeLog: Fix and enhance ChangeLog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177966 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoAvoid dangling line table after loading pch
dodji [Mon, 22 Aug 2011 16:00:32 +0000 (16:00 +0000)]
Avoid dangling line table after loading pch

gcc/

* c-family/c-pch.c (c_common_read_pch): Re-set line table right
after reading in the pch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177964 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoUse .init_array section only if __ELF__ is defined.
hjl [Mon, 22 Aug 2011 15:53:13 +0000 (15:53 +0000)]
Use .init_array section only if __ELF__ is defined.

2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>

* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
defined.
* configure: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177963 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR tree-optimization/50133
jakub [Mon, 22 Aug 2011 15:01:42 +0000 (15:01 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177958 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR middle-end/50141
jakub [Mon, 22 Aug 2011 15:00:06 +0000 (15:00 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177957 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-22 Mikael Morin <mikael.morin@gcc.gnu.org>
mikael [Mon, 22 Aug 2011 14:07:30 +0000 (14:07 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177956 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoAdd support for AVX2 builtin functions.
hjl [Mon, 22 Aug 2011 13:57:18 +0000 (13:57 +0000)]
Add support for AVX2 builtin functions.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177955 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * gcc.dg/pr49994-2.c: Add dg-require-effective-target scheduling.
gjl [Mon, 22 Aug 2011 13:57:12 +0000 (13:57 +0000)]
* gcc.dg/pr49994-2.c: Add dg-require-effective-target scheduling.
* gcc.dg/pr49994-3.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177954 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-22 Matthias Klose <doko@debian.org>
doko [Mon, 22 Aug 2011 11:21:55 +0000 (11:21 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177953 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-22 Richard Guenther <rguenther@suse.de>
rguenth [Mon, 22 Aug 2011 10:27:42 +0000 (10:27 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177952 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR bootstrap/50146
jakub [Mon, 22 Aug 2011 09:38:14 +0000 (09:38 +0000)]
PR bootstrap/50146
* ira-color.c (assign_hard_reg): Move saved_nregs declaration
to #ifndef HONOR_REG_ALLOC_ORDER block.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177951 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Mon, 22 Aug 2011 00:18:46 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177949 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoFix ChangeLog format for revision 177257.
gerald [Sun, 21 Aug 2011 19:24:31 +0000 (19:24 +0000)]
Fix ChangeLog format for revision 177257.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177945 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
rth [Sun, 21 Aug 2011 18:49:49 +0000 (18:49 +0000)]
    * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
        * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
        * resource.c (next_insn_no_annul): Likewise.
        (mark_set_resources): Likewise.
        * reorg.c (delete_from_delay_slot): Likewise.
        (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
        (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177944 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoFix ChangeLog format for revision 177258.
gerald [Sun, 21 Aug 2011 18:38:13 +0000 (18:38 +0000)]
Fix ChangeLog format for revision 177258.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177943 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 21 Aug 2011 16:35:28 +0000 (16:35 +0000)]
2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/47659
* expr.c (gfc_check_assign): Check for type conversions when the
right-hand side is a constant REAL/COMPLEX contstant the left-hand
side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
for REAL does not change the value of the constant.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/47659
* gfortran.dg/warn_conversion_2.f90:  Also warn about conversion
of a constant resulting from simplification.
* gfortran.dg/warn_conversion_3.f90:  New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177942 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/i386.md (any_div): Remove.
uros [Sun, 21 Aug 2011 16:19:14 +0000 (16:19 +0000)]
* config/i386/i386.md (any_div): Remove.
(sgnprefix): Update for removal.
(u): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177941 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 21 Aug 2011 12:02:12 +0000 (12:02 +0000)]
2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/50130
* resolve.c (resolve_array_ref):  Don't calculate upper bound
if the stride is zero.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/50130
* gfortran.dg/zero_stride_1.f90:  New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177940 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-20 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Sun, 21 Aug 2011 02:14:37 +0000 (02:14 +0000)]
2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>

* ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
for ira_reg_class_max_nregs.  Increase pressure by 1.
(mark_pseudo_regno_subword_dead): Use allocno class
for ira_reg_class_max_nregs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177939 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Sun, 21 Aug 2011 00:18:09 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177938 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
rth [Sat, 20 Aug 2011 22:28:19 +0000 (22:28 +0000)]
    * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
        config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
        config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
        config/c6x/ltf.c: Adjust include path for soft-fp.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177934 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoUse .init_arrary/.fini_array sections if possible.
hjl [Sat, 20 Aug 2011 20:02:17 +0000 (20:02 +0000)]
Use .init_arrary/.fini_array sections if possible.

2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>

PR other/46770
* config.gcc (tm_file): Add initfini-array.h if
.init_arrary/.fini_array are supported.

* crtstuff.c: Don't generate .ctors nor .dtors sections if
USE_INITFINI_ARRAY is defined.

* output.h (default_elf_init_array_asm_out_constructor): New.
(default_elf_fini_array_asm_out_destructor): Likewise.
* varasm.c (elf_init_array_section): Likewise.
(elf_fini_array_section): Likewise.
(get_elf_initfini_array_priority_section): Likewise.
(default_elf_init_array_asm_out_constructor): Likewise.
(default_elf_fini_array_asm_out_destructor): Likewise.

* config/initfini-array.h: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177933 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-20 Janus Weil <janus@gcc.gnu.org>
janus [Sat, 20 Aug 2011 19:11:56 +0000 (19:11 +0000)]
2011-08-20  Janus Weil  <janus@gcc.gnu.org>

PR fortran/49638
* dependency.c (gfc_dep_compare_expr): Add new result value "-3".
(gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
result value "-3".
        * frontend-passes.c (optimize_comparison): Ditto.
* interface.c (gfc_check_typebound_override): Ditto.

2011-08-20  Janus Weil  <janus@gcc.gnu.org>

PR fortran/49638
* gfortran.dg/typebound_override_1.f90: Modified.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177932 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc/
rsandifo [Sat, 20 Aug 2011 19:00:40 +0000 (19:00 +0000)]
gcc/
* config/mips/mips.c (mips_class_max_nregs): Check that the mode is
OK for ST_REGS and FP_REGS before taking those classes into account.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177931 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agogcc/
rsandifo [Sat, 20 Aug 2011 18:55:49 +0000 (18:55 +0000)]
gcc/
* config/mips/mips.c (mips_reorg_process_insns): Check for jumps
before checking for annulled branches.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177930 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/i386.c (ix86_binary_operator_ok): Use
uros [Sat, 20 Aug 2011 11:05:43 +0000 (11:05 +0000)]
* config/i386/i386.c (ix86_binary_operator_ok): Use
satisfies_constraint_L.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177928 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * config/i386/i386.c (ix86_expand_round_sse4): Expand as
uros [Sat, 20 Aug 2011 10:15:59 +0000 (10:15 +0000)]
* config/i386/i386.c (ix86_expand_round_sse4): Expand as
trunc (a + copysign (nextafter (0.5, 0.0), a)).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177927 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
aesok [Sat, 20 Aug 2011 09:18:35 +0000 (09:18 +0000)]
* doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
* doc/tm.texi: Regenerate.
* targhooks.c (default_preferred_output_reload_class): Don't use
PREFERRED_OUTPUT_RELOAD_CLASS macro.
* system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177926 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago PR tree-optimization/48739
jakub [Sat, 20 Aug 2011 07:48:35 +0000 (07:48 +0000)]
PR tree-optimization/48739
* tree-ssa.c: Include cfgloop.h.
(execute_update_addresses_taken): When updating ssa, if in
loop closed SSA form, call rewrite_into_loop_closed_ssa instead of
update_ssa.
* Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).

* gcc.dg/pr48739-1.c: New test.
* gcc.dg/pr48739-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177924 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-20 Tobias Burnus <burnus@net-b.de>
burnus [Sat, 20 Aug 2011 07:00:42 +0000 (07:00 +0000)]
2011-08-20  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/graphite/interchange-1.f: Remove xfail.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177923 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoDaily bump.
gccadmin [Sat, 20 Aug 2011 00:18:07 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177922 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Mikael Morin <mikael.morin@sfr.fr>
mikael [Fri, 19 Aug 2011 23:20:30 +0000 (23:20 +0000)]
2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/50129
* parse.c (parse_where): Undo changes after emitting an error.

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/50129
* gfortran.dg/where_3.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177918 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Fri, 19 Aug 2011 22:17:26 +0000 (22:17 +0000)]
2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/49936
* ira.c (ira_init_register_move_cost): Ignore too small subclasses
for calculation of max register move costs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177916 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * c-parser.c (c_parser_postfix_expression): Convert operands of
jsm28 [Fri, 19 Aug 2011 21:55:44 +0000 (21:55 +0000)]
* c-parser.c (c_parser_postfix_expression): Convert operands of
__builtin_complex to their semantic types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177915 138bc75d-0d04-0410-961f-82ee72b054a4

12 years agoPermute conversion and addition of constant for zero-extend.
hjl [Fri, 19 Aug 2011 21:18:03 +0000 (21:18 +0000)]
Permute conversion and addition of constant for zero-extend.

gcc/

2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>

PR middle-end/49721
* explow.c (convert_memory_address_addr_space): Also permute the
conversion and addition of constant for zero-extend.

gcc/testsuite/

2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>

PR middle-end/49721
* gfortran.dg/pr49721-1.f: New.
* gfortran.fortran-torture/compile/pr49721-1.f: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177914 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * c-parser.c (c_parser_postfix_expression): Handle
jsm28 [Fri, 19 Aug 2011 15:53:51 +0000 (15:53 +0000)]
* c-parser.c (c_parser_postfix_expression): Handle
RID_BUILTIN_COMPLEX.
* doc/extend.texi (__builtin_complex): Document.

c-family:
* c-common.c (c_common_reswords): Add __builtin_complex.
* c-common.h (RID_BUILTIN_COMPLEX): New.

testsuite:
* gcc.dg/builtin-complex-err-1.c, gcc.dg/builtin-complex-err-2.c,
gcc.dg/dfp/builtin-complex.c, gcc.dg/torture/builtin-complex-1.c:
New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177911 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 15:05:22 +0000 (15:05 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
beyond conversions.
(convert_mult_to_widen): Convert constant inputs to the right type.
(convert_plusminus_to_widen): Don't automatically reject inputs that
are not an SSA_NAME.
Convert constant inputs to the right type.

gcc/testsuite/
* gcc.target/arm/wmul-11.c: New file.
* gcc.target/arm/wmul-12.c: New file.
* gcc.target/arm/wmul-13.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177910 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 15:01:41 +0000 (15:01 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
to the correct type.

gcc/testsuite/
* gcc.target/arm/wmul-10.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177909 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:56:24 +0000 (14:56 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
unsigned inputs of different modes.
(convert_plusminus_to_widen): Likewise.

gcc/testsuite/
* gcc.target/arm/wmul-9.c: New file.
* gcc.target/arm/wmul-bitfield-2.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177908 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:45:56 +0000 (14:45 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
'type'.
Use 'type' from caller, not inferred from 'rhs'.
Don't reject non-conversion statements. Do return lhs in this case.
(is_widening_mult_p): Add new argument 'type'.
Use 'type' from caller, not inferred from 'stmt'.
Pass type to is_widening_mult_rhs_p.
(convert_mult_to_widen): Pass type to is_widening_mult_p.
(convert_plusminus_to_widen): Likewise.

gcc/testsuite/
* gcc.target/arm/wmul-8.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177907 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:41:34 +0000 (14:41 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
Ensure the the larger type is the first operand.

gcc/testsuite/
* gcc.target/arm/wmul-7.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177906 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:36:34 +0000 (14:36 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (convert_mult_to_widen): Convert
unsupported unsigned multiplies to signed.
(convert_plusminus_to_widen): Likewise.

gcc/testsuite/
* gcc.target/arm/wmul-6.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177905 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:31:30 +0000 (14:31 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
conversion statement separating multiply-and-accumulate.

gcc/testsuite/
* gcc.target/arm/wmul-5.c: New file.
* gcc.target/arm/no-wmla-1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177904 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Richard Guenther <rguenther@suse.de>
rguenth [Fri, 19 Aug 2011 14:26:13 +0000 (14:26 +0000)]
2011-08-19  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/50067
* tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
offset only if we accounted for it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177903 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:21:48 +0000 (14:21 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/arm/arm.md (maddhidi4): Remove '*' from name.
* expr.c (expand_expr_real_2): Use find_widening_optab_handler.
* optabs.c (find_widening_optab_handler_and_mode): New function.
(expand_widen_pattern_expr): Use find_widening_optab_handler.
(expand_binop_directly): Likewise.
(expand_binop): Likewise.
* optabs.h (find_widening_optab_handler): New macro define.
(find_widening_optab_handler_and_mode): New prototype.
* tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
type precision rules.
(verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
* tree-ssa-math-opts.c (build_and_insert_cast): New function.
(is_widening_mult_rhs_p): Allow widening by more than one mode.
Explicitly disallow mis-matched input types.
(convert_mult_to_widen): Use find_widening_optab_handler, and cast
input types to fit the new handler.
(convert_plusminus_to_widen): Likewise.

gcc/testsuite/
* gcc.target/arm/wmul-bitfield-1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177902 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago2011-08-19 Andrew Stubbs <ams@codesourcery.com>
ams [Fri, 19 Aug 2011 14:12:32 +0000 (14:12 +0000)]
2011-08-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* expr.c (expand_expr_real_2): Use widening_optab_handler.
* genopinit.c (optabs): Use set_widening_optab_handler for $N.
(gen_insn): $N now means $a must be wider than $b, not consecutive.
* optabs.c (widened_mode): New function.
(expand_widen_pattern_expr): Use widening_optab_handler.
(expand_binop_directly): Likewise.
(expand_binop): Likewise.
* optabs.h (widening_optab_handlers): New struct.
(optab_d): New member, 'widening'.
(widening_optab_handler): New function.
(set_widening_optab_handler): New function.
* tree-ssa-math-opts.c (convert_mult_to_widen): Use
widening_optab_handler.
(convert_plusminus_to_widen): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177901 138bc75d-0d04-0410-961f-82ee72b054a4

12 years ago * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
jsm28 [Fri, 19 Aug 2011 13:25:51 +0000 (13:25 +0000)]
* c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
pedantic.
* c-parser.c (c_parser_declspecs): Include _Noreturn in syntax
comment.
* ginclude/stdnoreturn.h (noreturn): Don't define for C++.

testsuite:
* gcc.dg/c90-noreturn-1.c, gcc.dg/c99-noreturn-1.c: New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177899 138bc75d-0d04-0410-961f-82ee72b054a4