* config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
	clobbered registers using clobber_reg.  Remove UNSPEC decoration.
	* config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
	(*call_rex64_ms_sysv): Remove.
	(*call_value_rex64_ms_sysv): Ditto.
	* config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.

testsuite/ChangeLog:

	* gcc.target/i386/avx-vzeroupper-16.c (dg-final): Remove check
	for call_value_rex64_ms_sysv.
	* gcc.target/i386/avx-vzeroupper-17.c (dg-final): Ditto.
	* gcc.target/i386/avx-vzeroupper-18.c (dg-final): Remove check
	for call_rex64_ms_sysv.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215428 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/predicates.md (ca_operand): Allow subregs.
	(input_operand): Do not allow ca_operand.
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
	carry bit, allow SImode and Pmode.
	(rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215429 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215430 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
	(two anonymous define_insn and two define_split): Delete.
	(*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215431 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
	(two anonymous define_insn and two define_split): Delete.
	(*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215432 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (iorxor): New code_iterator.
	(iorxor): New code_attr.
	(IORXOR): New code_attr.
	(*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
	(ior<mode>3, xor<mode>3): Delete.
	(<iorxor><mode>3): New.
	(splitter for "big" integer ior, xor): New.
	(*bool<mode>3): Move.  Also handle AND.
	(*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
	(splitter for "big" integer ior, xor): Delete.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215433 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
	constant, use addsi3 directly.
	(three anonymous define_insn, two define_split): Delete.
	(sub<mode>3): Move.  Do not allow constant second operand.
	Generate different insn for constant first operand.
	(*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
	(subf<mode>3_imm): New.
	(ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
	(*plus_ltu<mode>): Only handle registers.
	(*plus_ltu<mode>_1): New.  Handle integer third operand.
	(*plus_gtu<mode>): Only handle registers.
	(*plus_gtu<mode>_1): New.  Handle integer third operand.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215434 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
	popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
	Tidy.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215435 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
	*ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
	(floatdisf2_internal2): Ditto.
	(ashrdi3_no_power): Ditto.  Fix formatting.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215436 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
	insn for divides by integer powers of two.
	(div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
	(mod<mode>3): Fix formatting.
	(three anonymous define_insn and two define_split): Delete.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215437 138bc75d-0d04-0410-961f-82ee72b054a4
        * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.


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