2014-07-30  Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r211503.
	2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
	vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
	vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
	vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
	vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
	vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
	vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they are
	not in the spec.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213790 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-10 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r211779.
	2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213791 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/testsuite/
2014-08-10 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212023, r212024.
	2014-06-26  Vidya Praveen  <vidyapraveen@arm.com>

	* gcc.dg/inline-22.c: Add bind_pic_locally.
	* gcc.dg/inline_4.c: Ditto.
	* gcc.dg/fail_always_inline.c: Ditto.
	* g++.dg/ipa/devirt-25.C: Ditto.

	2014-06-26  Vidya Praveen  <vidyapraveen@arm.com>

	* lib/target-support.exp (bind_pic_locally): Save the flags to
	'flags_to_postpone' instead of appending to 'flags'.
	* lib/gcc.exp (gcc_target_compile): Append board_info's multilib_flags
	with flags_to_postpone and revert after target_compile.
	* lib/g++.exp (g++_target_compile): Ditto.
	* lib/gfortran.exp (gfortran_target_compile): Ditto.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213792 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-10 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212142, r212225.
	2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
	variable i.

	2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
	* config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
	against bigendian and adjust indices.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213793 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>


	Backport from trunk r212296.
	2014-07-04  Tom de Vries  <tom@codesourcery.com>

	* config/aarch64/aarch64-simd.md
	(define_insn "vec_unpack_trunc_<mode>"): Fix constraint.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213794 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212358.
	2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (cortexa5_extra_costs): New table.
	(arm_cortex_a5_tune): Use cortexa5_extra_costs.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213795 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212512.
	2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
	* config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
	* config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
	* config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
	* config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
	* config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
	* config/arm/cortex-r4.md (cortex_r4_alu): Likewise.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213796 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212752.
	2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
	(vmlal_high_lane_s32): Likewise.
	(vmlal_high_lane_u16): Likewise.
	(vmlal_high_lane_u32): Likewise.
	(vmlsl_high_lane_s16): Likewise.
	(vmlsl_high_lane_s32): Likewise.
	(vmlsl_high_lane_u16): Likewise.
	(vmlsl_high_lane_u32): Likewise.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213797 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212753.
	2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
	(aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213798 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r211270, r211271, r211273, r211275, r212943,
	r212945, r212946, r212947, r212949, r212950, r212951, r212952, r212954,
	r212955, r212956, r212957, r212958, r212976, r212996, r212997, r212999,
	r213000.
	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
	(aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.

	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
	(aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.

	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_restore_callee_saves)
	(aarch64_save_callee_saves): New parameter "skip_wb".
	(aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.

	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
	"wb_candidate2".
	* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.

	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
	subtract outgoing area size when restoring stack_pointer_rtx.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
	(aarch64_gen_loadwb_pair): New helper function.
	(aarch64_expand_epilogue): Simplify code using new helper functions.
	* config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
	(aarch64_gen_storewb_pair): New helper function.
	(aarch64_expand_prologue): Simplify code using new helper functions.
	* config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
	Rename to aarch64_save_callee_saves, remove restore code.
	(aarch64_restore_callee_saves): New function.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
	(aarch64_save_callee_saves): New function to handle reg save
	for both core and vectore regs.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_gen_load_pair)
	(aarch64_gen_store_pair): New helper function.
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Use new helper functions.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Hoist calculation of register rtx.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Remove 'increment'.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Use register offset in
	cfun->machine->frame.reg_offset.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Remove base_rtx.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers): Rename 'offset'
	to 'start_offset'.  Remove local variable 'start_offset'.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
	type to HOST_WIDE_INT.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_prologue)
	(aarch64_save_or_restore_fprs)
	(aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.

	2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
	frame_size.
	* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
	aarch64_frame hard_fp_offset and frame_size.
	(aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
	frame_size; remove original_frame_size.
	(aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
	(aarch64_initial_elimination_offset): Remove frame_size and
	offset.  Use aarch64_frame frame_size.

	2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
		    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_layout_frame): Correct
	initialization of R30 offset.  Update offset.  Iterate core
	regisers upto X30.  Remove X29, X30 specific code.

	2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
		    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
	(aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
	(aarch64_register_saved_on_entry): Adjust test.

	2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.h (machine_function): Move
	saved_varargs_size from here...
	(aarch64_frameGTY): ... to here.

	* config/aarch64/aarch64.c (aarch64_expand_prologue)
	(aarch64_expand_epilogue, aarch64_final_eh_return_addr)
	(aarch64_initial_elimination_offset)
	(aarch64_setup_incoming_varargs): Adjust location of
	saved_varargs_size.

gcc/testsuite/
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r212959, r212976, r212999, r213000.
	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* gcc.target/aarch64/test_frame_1.c: Match optimized instruction
	sequences.
	* gcc.target/aarch64/test_frame_2.c: Likewise.
	* gcc.target/aarch64/test_frame_4.c: Likewise.
	* gcc.target/aarch64/test_frame_6.c: Likewise.
	* gcc.target/aarch64/test_frame_7.c: Likewise.
	* gcc.target/aarch64/test_frame_8.c: Likewise.
	* gcc.target/aarch64/test_frame_10.c: Likewise.

	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* gcc.target/aarch64/test_frame_1.c: Match optimized instruction
	sequences.
	* gcc.target/aarch64/test_frame_10.c: Likewise.
	* gcc.target/aarch64/test_frame_2.c: Likewise.
	* gcc.target/aarch64/test_frame_4.c: Likewise.
	* gcc.target/aarch64/test_frame_6.c: Likewise.
	* gcc.target/aarch64/test_frame_7.c: Likewise.
	* gcc.target/aarch64/test_frame_8.c: Likewise.
	* gcc.target/aarch64/test_fp_attribute_1.c: Likewise.

	2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* gcc.target/aarch64/test_frame_12.c: Match optimized instruction
	sequences.

	2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* gcc.target/aarch64/test_frame_common.h: New file.
	* gcc.target/aarch64/test_frame_1.c: Likewise.
	* gcc.target/aarch64/test_frame_2.c: Likewise.
	* gcc.target/aarch64/test_frame_3.c: Likewise.
	* gcc.target/aarch64/test_frame_4.c: Likewise.
	* gcc.target/aarch64/test_frame_5.c: Likewise.
	* gcc.target/aarch64/test_frame_6.c: Likewise.
	* gcc.target/aarch64/test_frame_7.c: Likewise.
	* gcc.target/aarch64/test_frame_8.c: Likewise.
	* gcc.target/aarch64/test_frame_9.c: Likewise.
	* gcc.target/aarch64/test_frame_10.c: Likewise.
	* gcc.target/aarch64/test_frame_11.c: Likewise.
	* gcc.target/aarch64/test_frame_12.c: Likewise.
	* gcc.target/aarch64/test_frame_13.c: Likewise.
	* gcc.target/aarch64/test_frame_14.c: Likewise.
	* gcc.target/aarch64/test_frame_15.c: Likewise.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213799 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r213376.
	2014-07-31  Charles Baylis  <charles.baylis@linaro.org>

	PR target/61948
	* config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
	constraints are satisfied.
	(<shift>di3_neon): Likewise.

gcc/testsuite
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>
	Backport from trunk r213376.
	2014-07-31  Charles Baylis  <charles.baylis@linaro.org>

	PR target/61948
	* gcc.target/arm/pr61948.c: New test case.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213800 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>

	Backport from trunk r213555.
	2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/61713
	* gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
	move to subtarget in serial version if result is ignored.

gcc/testsuite
2014-08-11 Yvan Roux  <yvan.roux@linaro.org>
	Backport from trunk r213555.
	2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/61713
	* gcc.dg/pr61756.c: New test.



git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@213801 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'linaro/linaro-4.9-branch' into linaro-4.9-branch