[AArch64][1/5] Implement TARGET_SCHED_MACRO_FUSION_PAIR_P

	* config/aarch64/aarch64-protos.h (struct tune_params): Add
	fuseable_ops field.
	* config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(aarch64_macro_fusion_p): New function.
	(aarch_macro_fusion_pair_p): Likewise.
	(TARGET_SCHED_MACRO_FUSION_P): Define.
	(TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
	(AARCH64_FUSE_MOV_MOVK): Likewise.
	(AARCH64_FUSE_NOTHING): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218007 138bc75d-0d04-0410-961f-82ee72b054a4
[PATCH 1/2] Negative numbers added for sreal class.

	* predict.c (propagate_freq): More elegant sreal API is used.
	(estimate_bb_frequencies): Precomputed constants replaced by integer
	constants.
	* sreal.c (sreal::normalize): New function.
	(sreal::to_int): Likewise.
	(sreal::operator+): Likewise.
	(sreal::operator-): Likewise.
	(sreal::signedless_plus): Likewise.
	(sreal::signedless_minus): Likewise.
	(sreal::operator/): Negative number support is added.
	* sreal.h: Definition of new functions added.
	(inline sreal operator<<): New function.
	(inline sreal operator>>): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218008 138bc75d-0d04-0410-961f-82ee72b054a4
[PATCH 2/2] ipa-inline uses sreal for as fibonacci_heap template

	* ipa-inline.c (edge_badness): long is replaced by sreal
	as fibonacci_heap template type.
	(update_edge_key): Likewise.
	(inline_small_functions): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218009 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64][2/5] Implement adrp+add fusion

	* config/aarch64/aarch64.c: Include tm-constrs.h
	(AARCH64_FUSE_ADRP_ADD): Define.
	(cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
	(cortexa53_tunings): Likewise.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218010 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-24  Richard Biener  <rguenther@suse.de>

	PR testsuite/64039
	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: XFAIL for hppa*-*-*.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218011 138bc75d-0d04-0410-961f-82ee72b054a4
[sched-deps] Remove needless check for modified_in_p when trying to fuse two non-conditional jump insns

	* sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
	in the not conditional jump case.
	* doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
	* target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.

	* gcc.target/aarch64/fuse_adrp_add_1.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218012 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64][3/5] Implement fusion of MOVK+MOVK

	* config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
	(cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
	(cortexa57_tunings): Likewise.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218013 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64][4/5] Implement fusion of ARDP+LDR

	* config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
	(cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218014 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-24  Petr Murzin  <petr.murzin@intel.com>

gcc/
	* simplify-rtx.c (simplify_ternary_operation): Simplify
	vec_merge (vec_duplicate (vec_select)).

gcc/testsuite/
	* gcc.target/i386/extract-insert-combining.c: New test.


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