Commit graph

125758 commits

Author SHA1 Message Date
GCC Administrator
9e58eee783 Daily bump.
From-SVN: r203511
2013-10-14 00:16:25 +00:00
Nicolas Roche
8219336f4f Make-lang.in (ada/%.o): Replace individual rules with generic rule and add $(POSTCOMPILE).
* gcc-interface/Make-lang.in (ada/%.o): Replace individual rules with
	generic rule and add $(POSTCOMPILE).
	(ADA_DEPS): New.
	(.adb.o): Add @$(ADA_DEPS).
	(.ads.o): Likewise.
	(ada/a-except.o): Likewise.
	(ada/s-excdeb.): Likewise.
	(ada/s-assert.o): Likewise.
	(ada/a-tags.o): Likewise.
	(ada_generated_files): New variable.
	Use them as dependency order for GNAT1_ADA_OBJS and GNATBIND_OBJS.
	(ADA_DEPFILES): New variable.
	Include them.
	(ada_OBJS): Define.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r203508
2013-10-13 20:27:26 +00:00
Eric Botcazou
f036807af8 decl.c (gnat_to_gnu_entity): Force all local variables with aggregate types in memory if not optimizing.
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force all local
	variables with aggregate types in memory if not optimizing.

From-SVN: r203507
2013-10-13 17:20:58 +00:00
Arnaud Charlet
d67f5bbb91 [multiple changes]
2013-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_Mode): Do
	not emit an error when we are looking at inputs and
	the item is an unconstrained or tagged out parameter.
	(Check_Mode_Restriction_In_Enclosing_Context): Use Get_Pragma
	to find whether the context is subject to aspect/pragma Global.
	(Collect_Subprogram_Inputs_Outputs): Unconstrained or tagged
	out parameters are now considered inputs. Use Get_Pragma to
	find wheher the subprogram is subject to aspect/pragma Global.
	(Is_Unconstrained_Or_Tagged_Item): New routine.

2013-10-13  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads: Minor reformatting.
	* gcc-interface/Make-lang.in: Update dependencies.

From-SVN: r203506
2013-10-13 18:37:01 +02:00
Robert Dewar
ff7a7e12be gnat_rm.texi: Add documentation for pragmas Pre[_Class] Post[_Class].
2013-10-13  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add documentation for pragmas Pre[_Class]
	Post[_Class].
	* par-ch2.adb (Skip_Pragma_Semicolon): Handle extra semicolon nicely.
	* par-prag.adb: Add entries for pragmas Pre[_Class] and
	Post[_Class].
	* sem_prag.adb: Add handling of pragmas Pre[_Class] and
	Post[_Class].
	* sem_util.adb (Original_Aspect_Name): Moved here from
	Sem_Prag.Original_Name, and modified to handle pragmas
	Pre/Post/Pre_Class/Post_Class.
	* sem_util.ads (Original_Aspect_Name): Moved here from
	Sem_Prag.Original_Name.
	* snames.ads-tmpl: Add entries for pragmas Pre[_Class] and
	Post[_Class].

2013-10-13  Robert Dewar  <dewar@adacore.com>

	* einfo.adb, sem_ch6.adb: Minor reformatting.

From-SVN: r203505
2013-10-13 18:34:01 +02:00
Hristian Kirtchev
ab8843fac0 einfo.adb: Add node/list usage for Refined_State and Refinement_Constituents.
2013-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb: Add node/list usage for Refined_State
	and Refinement_Constituents.
	(Get_Pragma): Update the
	initialization of Is_CDG to include Refined_Global and
	Refined_Depends. Rename constant Delayed to In_Contract and update
	all of its occurrences.
	(Is_Non_Volatile_State): New routine.
	(Is_Volatile_State): Removed.
	(Refined_State): New routine.
	(Refinement_Constituents): New routine.
	(Set_Refined_State): New routine.
	(Set_Refinement_Constituents): New routine.
	(Write_Field8_Name): Add output for Refinement_Constituents.
	(Write_Field10_Name): Add output for Refined_State.
	* einfo.ads: Add new synthesized attribute Is_Non_Volatile_State.
	Remove synthesized attribute Is_Volatile_State.  Add new
	attributes Refined_State and Refinement_Constituents along with
	usage in nodes.
	(Get_Pragma): Update the comment on usage.
	(Is_Non_Volatile_State): New routine.
	(Is_Volatile_State): Removed.
	(Refined_State): New routine and pragma Inline.
	(Refinement_Constituents): New routine and pragma Inline.
	(Set_Refined_State): New routine and pragma Inline.
	(Set_Refinement_Constituents): New routine and pragma Inline.
	* elists.ads, elists.adb (Clone): Removed.
	(New_Copy_Elist): New routine.
	(Remove): New routine.
	* sem_ch3.adb (Analyze_Declarations): Use Defining_Entity
	to get the entity of the subprogram [body].
	(Analyze_Object_Declaration): Add initialization for
	Refined_State.
	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing
	for Refined_Global and Refined_Depends. Emit an error when
	the body requires Refined_Global, but the aspect/pragma is
	not present.
	* sem_ch6.ads (Analyze_Subprogram_Body_Contract): Change
	procedure signature and add comment on usage.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
	for aspect Refined_Global.
	* sem_prag.adb (Analyze_Abstract_State): Add initialization
	of attributes Refined_State and Refinement_Constituents.
	(Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part,
	Analyze_Contract_Cases_In_Decl_Part): Remove local
	constant Arg1.
	(Analyze_Pragma): Add processing for pragma
	Refined_Global. The analysis of Refined_Post and Refined_Pre
	has been merged. Update an error message in the processing of
	pragma Refined_State.
	(Analyze_Refined_Global_In_Decl_Part): Provide implementation.
	(Analyze_Refined_Pragma): New routine.
	(Analyze_Refined_Pre_Post_Condition): Removed.
	(Analyze_Refined_State_In_Decl_Part): Update the call to Clone.
	(Analyze_Refinement_Clause): Make State_Id visible to all
	nested subprogram.
	(Check_Matching_Constituent): Establish
	a relation between a refined state and its constituent.
	(Collect_Hidden_States_In_Decls): Remove ??? comment. Look at
	the entity of the object declaration to establish its kind.
	* sem_util.adb: Alphabetize with and use clauses.
	(Contains_Refined_State): New routine.
	* sem_util.ads (Contains_Refined_State): New routine.

From-SVN: r203504
2013-10-13 18:31:00 +02:00
Arnaud Charlet
ad0d71b531 [multiple changes]
2013-10-13  Thomas Quinot  <quinot@adacore.com>

	* scos.ads: Minor documentation clarification.

2013-10-13  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC when
	building on AIX 5.3 or later, and to CLOCK_REALTIME on older
	versions of AIX.
	* init.c (pthread_condattr_setclock): Remove now useless weak symbol.
	* thread.c(__gnat_pthread_condattr_setup): Remove bogus AIX 5.2
	compatibility shim.
	* s-osinte-aix.ads(clock_id_t): Fix C mapping (this is a 64-bit
	type).
	(clock_gettime): Import from C runtime library.
	* s-osinte-aix.adb (clock_gettime): Remove bogus emulation body,
	this routine is provided by the system in current supported
	versions of AIX.

2013-10-13  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2013-10-13  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): For a function whose return type
	is incomplete, do not replace the type with the full view if the
	type is a limited view.  In that case the full view appears in a
	different unit, and the back-end will retrieve it at the proper
	elaboration point.

2013-10-13  Yannick Moy  <moy@adacore.com>

	* exp_spark.adb (Expand_SPARK_Call): Do not introduce temporaries for
	actuals.

From-SVN: r203503
2013-10-13 18:21:32 +02:00
Arnaud Charlet
cf895a0159 [multiple changes]
2013-10-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: in Ada 2012 access_to_function types can have
	in-out parameters.
	(Derived_Type_Declaration): SPARK restriction
	must be flagged on the original node, since it may have been
	written as a subtype declaration.
	(Analyze_Subtype_Declaration): Do not enter name of
	entity in declaration if it is the current entity, because it may
	have been inserted in a previous analysis and it appears in the
	else_part of an if-statement that is rewritten during expansion.

2013-10-13  Yannick Moy  <moy@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove procedure.
	(Expand_SPARK): Remove call to Expand_SPARK_N_Attribute_Reference and
	Expand_SPARK_N_Simple_Return_Statement.
	(Expand_SPARK_N_Simple_Return_Statement,
 	Expand_SPARK_Simple_Function_Return): Remove procedures.

From-SVN: r203502
2013-10-13 18:17:09 +02:00
Arnaud Charlet
409274f155 [multiple changes]
2013-10-13  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Minor editing.

2013-10-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Check_Abstract_Overriding): If a synchronized
	operation implements an interface primitive, mark the operation
	as referenced, to prevent usually spurious messages about unused
	entities: such operations are called in dispatching select
	statements that are not visible to the compiler.

From-SVN: r203501
2013-10-13 18:14:16 +02:00
Eric Botcazou
2e151b6dbc * gcc-interface/decl.c (gnat_to_gnu_param): Remove obsolete comment.
From-SVN: r203499
2013-10-13 14:58:43 +00:00
Eric Botcazou
3246afaa93 re PR rtl-optimization/58662 (wrong code at -O2 for dumb condition)
PR rtl-optimization/58662
	* combine.c (try_combine): Take into account death nodes on I2 when
	splitting a PARALLEL of two independent SETs.  Fix dump message.

From-SVN: r203498
2013-10-13 13:29:28 +00:00
Ian Lance Taylor
6137391a48 compiler: Fix handling of imported struct with embedded builtin type.
From-SVN: r203496
2013-10-13 04:15:20 +00:00
GCC Administrator
713b26d056 Daily bump.
From-SVN: r203495
2013-10-13 00:16:46 +00:00
Oleg Endo
5d30dc5b6d re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
PR target/51244
	* config/sh/sh_treg_combine.cc: New SH specific RTL pass.
	* config.gcc (SH extra_objs): Add sh_ifcvt.o.
	* config/sh/t-sh (sh_treg_combine.o): New entry.
	* config/sh/sh.c (sh_fixed_condition_code_regs): New function that
	implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
	(register_sh_passes): New function.  Register sh_treg_combine pass.
	(sh_option_override): Invoke it.
	(sh_canonicalize_comparison): Handle op0_preserve_value.
	* sh.md (*cbranch_t"): Do not try to optimize missed test and branch
	opportunities.  Canonicalize branch condition.
	(nott): Allow only if pseudos can be created for non-SH2A.

	PR target/51244
	* gcc.dg/torture/p51244-21.c: New.
	* gcc.target/sh/pr51244-20.c: New.
	* gcc.target/sh/pr51244-20-sh2a.c: New.

From-SVN: r203492
2013-10-12 20:47:22 +00:00
Arnaud Charlet
585a0b9916 Slightly related to PR/58645:
* gnat.dg/specs/linker_section.ads: Update test.

From-SVN: r203490
2013-10-12 20:40:25 +02:00
Uros Bizjak
adcfd4893c ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r203489
2013-10-12 18:17:24 +02:00
H.J. Lu
37d1c5db3a Truncate x32 DImode TLS address to a SImode register
gcc/

	PR target/58690
	* config/i386/i386.c (ix86_copy_addr_to_reg): New function.
	(ix86_expand_movmem): Replace copy_addr_to_reg with
	ix86_copy_addr_to_reg.
	(ix86_expand_setmem): Likewise.

gcc/testsuite/

	PR target/58690
	* gcc.target/i386/pr58690.c: New test

From-SVN: r203486
2013-10-12 07:55:28 -07:00
Alexander Monakov
b86a70ff8d i386.c (ix86_expand_sse_compare_and_jump): Use mode provided by ix86_fp_compare_mode instead of CCFPUmode.
* config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
	provided by ix86_fp_compare_mode instead of CCFPUmode.

testsuite/:
	* gcc.target/i386/builtin-ucmp.c: New test.

From-SVN: r203483
2013-10-12 16:48:23 +04:00
Jakub Jelinek
f89163fd48 re PR libgomp/58691 (OpenMP 4: Surprising results with OMP_PLACES=)
PR libgomp/58691
	* config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
	to check variable.
	(gomp_init_num_threads): Move i variable declaration into
	#ifdef CPU_ALLOC_SIZE block.
	* config/linux/affinity.c (gomp_affinity_init_level): Test
	gomp_places_list_len == 0 rather than gomp_places_list == 0
	when checking for topology reading error.
	* team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
	* env.c (parse_affinity): Add ignore argument, if true, don't populate
	gomp_places_list, only parse env var and always return false.
	(parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
	(initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
	vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
	and either of these variables were parsed correctly into a places
	list.

From-SVN: r203479
2013-10-12 09:52:15 +02:00
James Greenhalgh
6e1d5961ce [AArch64] Fix early-clobber operands to vtbx[1,3]
gcc/
	* config/aarch64/arm_neon.h
	(vtbx<1,3>_<psu>8): Fix register constriants.

From-SVN: r203478
2013-10-12 07:49:47 +00:00
Paul Pluzhnikov
ea0882a0ab cp-demangle.c (d_name): Demangle local-source-names.
2013-10-11  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* cp-demangle.c (d_name): Demangle local-source-names.
	* testsuite/demangle-expected: New test.

From-SVN: r203476
2013-10-11 17:31:18 -07:00
GCC Administrator
5954261c4d Daily bump.
From-SVN: r203475
2013-10-12 00:16:42 +00:00
Brooks Moses
a9e6b8368a altivec-7.C: Check for standard vector-type name mangling.
* g++.dg/ext/altivec-7.C: Check for standard vector-type name
  mangling.

From-SVN: r203469
2013-10-11 16:23:08 -07:00
Ian Lance Taylor
55e0ab1ad9 compiler: Fix handling of hidden methods for unnamed types.
If an interface has hidden methods, we must make the interface
table comdat if it is for an unnamed type.

When we create a stub method for an unnamed type, don't make
it publically visible.

From-SVN: r203468
2013-10-11 22:53:17 +00:00
Chris Manghane
b7d93b468a compiler: Use backend interface for function code expressions.
* go-gcc.cc (Gcc_backend::function_code_expression): New
	function.

From-SVN: r203467
2013-10-11 22:17:47 +00:00
Jeff Law
ef3cfba23d re PR tree-optimization/58640 (wrong code (segfaults) at -O3 on x86_64-linux-gnu)
PR tree-optimization/58640
	* tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump threading
	paths that cross over two loop entry points.

	* gcc.c-torture/execute/pr58640.c: New test.

From-SVN: r203463
2013-10-11 14:31:25 -06:00
Bill Schmidt
6e8b7d9cd6 vsx.md (*vsx_le_perm_load_v2di): Generalize to handle vector float as well.
2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
	handle vector float as well.
	(*vsx_le_perm_load_v4si): Likewise.
	(*vsx_le_perm_store_v2di): Likewise.
	(*vsx_le_perm_store_v4si): Likewise.

From-SVN: r203458
2013-10-11 18:53:52 +00:00
Bill Schmidt
f200869abc vector.md (vec_realign_load<mode>): Generate vperm directly to circumvent subtract from splat{31} workaround.
2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
	directly to circumvent subtract from splat{31} workaround.
	* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
	prototype.
	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
	* config/rs6000/altivec.md (define_c_enum "unspec"): Add
	UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
	(altivec_vperm_<mode>): Convert to define_insn_and_split to
	separate big and little endian logic.
	(*altivec_vperm_<mode>_internal): New define_insn.
	(altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
	separate big and little endian logic.
	(*altivec_vperm_<mode>_uns_internal): New define_insn.
	(vec_permv16qi): Add little endian logic.

From-SVN: r203457
2013-10-11 18:52:07 +00:00
H.J. Lu
39aeb94e3d Update x32 baseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.

From-SVN: r203456
2013-10-11 11:46:22 -07:00
Ian Lance Taylor
08580c3477 compiler: Error if receiver and parameter have same name.
From-SVN: r203455
2013-10-11 18:28:04 +00:00
Ian Lance Taylor
d621811443 compiler: Better error message of unsafe.Offsetof(method value).
From-SVN: r203454
2013-10-11 18:10:03 +00:00
Ian Lance Taylor
0213a547b0 compiler: accept integral float constants as string indices.
From-SVN: r203452
2013-10-11 17:45:29 +00:00
Marc Glisse
8d28e3fc18 extend.texi (returns_nonnull): Remove arguments.
2013-10-11  Marc Glisse  <marc.glisse@inria.fr>

	* doc/extend.texi (returns_nonnull): Remove arguments.

From-SVN: r203451
2013-10-11 17:37:44 +00:00
Ian Lance Taylor
e169e8b0ca compiler: Improve handling of invalid ASCII characters in identifiers.
From-SVN: r203450
2013-10-11 17:04:42 +00:00
Paolo Carlini
20e8fa5327 re PR c++/58633 (ICE with decltype of destructor call)
/cp
2013-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58633
	* parser.c (cp_parser_commit_to_topmost_tentative_parse): New.
	(cp_parser_pseudo_destructor_name): Use it.

/testsuite
2013-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58633
	* g++.dg/cpp0x/decltype57.C: New.

From-SVN: r203448
2013-10-11 14:35:23 +00:00
Jakub Jelinek
acd15a286e c-common.h (omp_clause_mask::operator !=): New method.
* c-common.h (omp_clause_mask::operator !=): New method.
	* c-omp.c (c_omp_split_clauses): Use if ((mask & something) != 0)
	instead of if (mask & something) tests everywhere.

From-SVN: r203447
2013-10-11 16:34:18 +02:00
Paolo Carlini
ddc757fe19 re PR c++/31671 (Non-type template of type const ref accepted as a non-const ref)
/cp
2013-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/31671
	* pt.c (convert_nontype_argument): Set expr_type to
	TREE_TYPE (probe_type).

/testsuite
2013-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/31671
	* g++.dg/template/nontype26.C: New.

From-SVN: r203444
2013-10-11 14:18:42 +00:00
Alexander Ivchenko
3c87b77b1e sse.md (VI48F_256_512): New.
* config/i386/sse.md (VI48F_256_512): New.
        (avx2_permvar<mode>): Change to ...
        (<avx2_avx512f>_permvar<mode>): This.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203442
2013-10-11 14:05:40 +00:00
Alexander Ivchenko
50e60d7d5d i386.c (bdesc_args): Change corresponding pattern for __builtin_ia32_cvtps2dq...
* config/i386/i386.c (bdesc_args): Change corresponding pattern  for
        __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
        * config/i386/sse.md (VI4_AVX): New.
        (sf2simodelower): Ditto.
        (sse2_cvtps2dq): Change to ...
        (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203441
2013-10-11 14:03:53 +00:00
Alexander Ivchenko
f62ce24ff7 sse.md (V_512): New.
* config/i386/sse.md (V_512): New.
        (VI_512): Ditto.
        (vcond<V_512:mode><VF_512:mode>): Ditto.
        (vcond<V_512:mode><VI_512:mode>): Ditto.
        (vcondu<V_512:mode><VI_512:mode>): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203440
2013-10-11 14:02:07 +00:00
Alexander Ivchenko
558d9f795b i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
* config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
        * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
        (FMAMODE): Ditto.
        (fma<mode>4): Removed condition.
        (fms<mode>4): Ditto.
        (fnma<mode>4): Ditto.
        (fnms<mode>4): Ditto.
        (fma4i_fmadd_<mode>): Ditto.
        (*fma_fmadd_<mode>): Ditto.
        (*fma_fmsub_<mode>): Ditto.
        (*fma_fnmadd_<mode>): Ditto.
        (*fma_fnmsub_<mode>): Ditto.
        (fmaddsub_<mode>): Allow for TARGET_AVX512F.
        (*fma_fmaddsub_<mode>): Ditto.
        (*fma_fmsubadd_<mode>): Ditto.
        (*fmai_fmadd_<mode>): Ditto.
        (*fmai_fmsub_<mode>): Ditto.
        (*fmai_fnmadd_<mode>): Ditto.
        (*fmai_fnmsub_<mode>): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203439
2013-10-11 14:00:11 +00:00
Alexander Ivchenko
e8d0820644 sse.md (VI248_AVX2_8_AVX512F): New.
* config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
        (VI124_256): Changed to ...
        (VI124_256_48_512): This.
        (ssepackmode): Extended with wider modes.
        (<code><mode>3): Changed iterator.
        (*avx2_<code><mode>3): Ditto.
        (vec_pack_trunc_<mode>): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203437
2013-10-11 13:55:10 +00:00
Alexander Ivchenko
1682154599 sse.md (VI124_AVX2_48_AVX512F): New.
* config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
        (VI8F_256_512): Ditto.
        (abs<mode>2): Changed iterator.
        (avx2_perm<mode>): Changed to ...
        (<avx2_avx512f>_perm<mode>): This.
        (avx2_perm<mode>_1): Changed to ...
        (<avx2_avx512f>_perm<mode>_1): This.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203436
2013-10-11 13:53:01 +00:00
Alexander Ivchenko
5348cff867 sse.md (VI48_AVX512F): New.
* config/i386/sse.md (VI48_AVX512F): New.
        (VI48_AVX2): Changed to ...
        (VI48_AVX2_48_AVX512F): This.
        (avx2_ashrv<mode>): Changed to ...
        (<avx2_avx512f>_ashrv<mode>): This.
        (avx2_<shift_insn>v<mode>): Changed to ...
        (<avx2_avx512f>_<shift_insn>v<mode>): This.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203435
2013-10-11 13:50:18 +00:00
Alexander Ivchenko
f5f41d884c sse.md (VI4_AVX512F): New.
* config/i386/sse.md (VI4_AVX512F): New.
        (VI8_AVX2_AVX512F): Ditto.
        (mul<mode>3): Extended with wider modes.
        (*<sse4_1_avx2>_mul<mode>3): Ditto.
        (mul<mode>3): Ditto.
        (vec_widen_<s>mult_odd_<mode>): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203434
2013-10-11 13:45:55 +00:00
Alexander Ivchenko
3bdf634051 sse.md (VI2_AVX512F): New.
* config/i386/sse.md (VI2_AVX512F): New.
        (VI124_AVX512F): Ditto.
        (sseunpackmode): Extended with wider modes.
        (sseunpackfltmode): Ditto.
        (vec_unpacks_float_hi_<mode>): Ditto.
        (vec_unpacks_float_lo_<mode>): Ditto.
        (vec_unpacku_float_hi_<mode>): Ditto.
        (vec_unpacku_float_lo_<mode>): Ditto.
        (vec_unpacks_lo_<mode>): Ditto.
        (vec_unpacks_hi_<mode>): Ditto.
        (vec_unpacku_lo_<mode>): Ditto.
        (vec_unpacku_hi_<mode>): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203433
2013-10-11 13:42:10 +00:00
Alexander Ivchenko
67f783cbc3 i386.md (multdiv): New.
* config/i386/i386.md (multdiv): New.
        (multdiv_mnemonic): Ditto.
        * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
        (<sse>_vm<multdiv_mnemonic><mode>3): This.
        (<sse>_vmdiv<mode>3): Removed.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203432
2013-10-11 13:38:15 +00:00
Alexander Ivchenko
ec5e777c3e sse.md (V): Extended with wider modes.
* config/i386/sse.md (V): Extended with wider modes.
        (VF2): Ditto.
        (ssehalfvecmode): Ditto.
        (i128): Ditto.
        (ssepackfltmode): Ditto.
        (avx_vec_concat<mode>): Ditto.
        (V_256_512): New iterator.
        (VF2_512_256): Ditto.
        (si2dfmode): New attribute.
        (si2dfmodelower): Ditto.
        (sf2dfmode): Ditto.
        (concat_tg_mode): Ditto.
        (floatv4siv4df2): Changed to ...
        (float<si2dfmodelower><mode>2): This.
        (avx_cvtps2pd256): Changed to ...
        (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
        (vec_pack_trunc_v4df): Changed to ...
        (vec_pack_trunc_<mode>): This.
        (avx_vpermil<mode>): Changed to ...
        (<sse2_avx_avx512f>_vpermil<mode>): This.
        (<fixsuffix>fix_truncv8dfv8si2): New.
        (vec_pack_sfix_trunc_v8df): Ditto.
        (avx512f_rndscale<mode>): Ditto.
        (avx512f_roundpd512): Ditto.
        (vec_pack_ufix_trunc_<mode>): Updated iterator.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203431
2013-10-11 13:35:00 +00:00
Alexander Ivchenko
a9ccbba2d9 i386.md (any_fix): New iterator.
* config/i386/i386.md (any_fix): New iterator.
        (fixsuffix): New attribute.
        * config/i386/sse.md (VF1): Extened with wider modes.
        (VI): Ditto.
        (VI_AVX2): Ditto.
        (VI8): Ditto.
        (sseintvecmodelower): Ditto.
        (ssescalarmode): Ditto.
        (ssescalarnum): Ditto.
        (VF1_128_256): New.
        (ssexmmmode): Ditto.
        (<fixsuffix>fix_truncv16sfv16si2): Ditto.
        (<sse>_rcp<mode>2): Change iterator.
        (rsqrt<mode>2): Ditto.
        (<sse>_rsqrt<mode>2): Ditto.
        (avx2_vec_dup<mode>): Ditto.
        (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
        (round<mode>2_sfix): Ditto.
        (avx2_pbroadcast<mode>): Ditto.
        (*andnot<mode>3): Handle XI mode.
        (*<code><mode>3): Ditto.
        (AVXTOSSEMODE): Removed.
        (avx_vpermil<mode>): Changed to ...
        (<sse2_avx_avx512f>_vpermil<mode>): This.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203429
2013-10-11 13:00:40 +00:00
Alexander Ivchenko
2b1ebb0cfe sse.md (<sse2>_movnt<mode>): Update constraint to "v".
* config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
        (<sse>_comi): Ditto.
        (<sse>_ucomi): Ditto.
        (sse_cvtss2siq_2): Ditto.
        (sse2_cvtsd2si): Ditto.
        (sse2_cvtsd2siq): Ditto.
        (sse2_cvttsd2si): Ditto.
        (sse2_cvttsd2siq): Ditto.
        (<shift_insn><mode>3): Ditto.
        (sse2_cvtsi2sdq): Update constraint and prefix.
        (sse_cvtsi2ss): Update prefix.
        (sse_cvtsi2ssq): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r203428
2013-10-11 12:53:24 +00:00