2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
	define_insn to define_insn_and_split.
	(thumb32_umaxsi3,thumb2_uminsi3): Likewise.
	(thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
	(thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
	(thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
	(thumb2_negscc): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198489 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Improve description of <F>CM instructions in RTL

gcc/
	* config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
	(cmgeu): ...This.
	(cmhi): Rename to...
	(cmgtu): ...This.
	* config/aarch64/aarch64-simd.md
	(simd_mode): Add SF.
	(aarch64_vcond_internal): Use new names for unsigned comparison insns.
	(aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
	* config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
	(cstore<mode>_neg): ...This.
	* config/aarch64/iterators.md
	(VALLF): new.
	(unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
	(COMPARISONS): New.
	(UCOMPARISONS): Likewise.
	(optab): Add missing comparisons.
	(n_optab): New.
	(cmp_1): Likewise.
	(cmp_2): Likewise.
	(CMP): Likewise.
	(cmp): Remove.
	(VCMP_S): Likewise.
	(VCMP_U): Likewise.
	(V_cmp_result): Add DF, SF modes.
	(v_cmp_result): Likewise.
	(v): Likewise.
	(vmtype): Likewise.
	* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198490 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Remap neon vcmp functions to C/TREE

gcc/
	* config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
	(aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
	* config/aarch64/aarch64-simd-builtins.def
	(cmeq): Update to BUILTIN_VALLDI.
	(cmgt): Likewise.
	(cmge): Likewise.
	(cmle): Likewise.
	(cmlt): Likewise.
	* config/aarch64/arm_neon.h
	(vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
	to builtins or C as appropriate.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198491 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add special case when expanding vcond with arms {-1, -1}, {0, 0}.

gcc/
	* config/aarch64/aarch64-simd.md
	(vcond<mode>_internal): Handle special cases for constant masks.
	(vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
	(vcondu<mode><mode>): Likewise.
	(vcond<v_cmp_result><mode>): New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198492 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64 Testsuite] Fix fallout from FCM changes.

gcc/testsuite/
	* gcc.target/aarch64/scalar_intrinsics.c (force_simd): New.
	(test_vceqd_s64): Force arguments to SIMD registers.
	(test_vceqzd_s64): Likewise.
	(test_vcged_s64): Likewise.
	(test_vcled_s64): Likewise.
	(test_vcgezd_s64): Likewise.
	(test_vcged_u64): Likewise.
	(test_vcgtd_s64): Likewise.
	(test_vcltd_s64): Likewise.
	(test_vcgtzd_s64): Likewise.
	(test_vcgtd_u64): Likewise.
	(test_vclezd_s64): Likewise.
	(test_vcltzd_s64): Likewise.
	(test_vtst_s64): Likewise.
	(test_vtst_u64): Likewise.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198493 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add combiner patterns for FAC instructions

gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
	* config/aarch64/iterators.md (FAC_COMPARISONS): New.



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