This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, i386]: Remove reg_not_xmm0_operand and similar hacks


Hello!

Attached patch removes various *_not_xmm0_operand hacks. These were
used to prevent combine from moving xmm0 register to the wrong place,
but recently we implemented better approach.

2012-09-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
	Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
	Use nonimmediate_operand instead of
	nonimm_not_xmm0_operand{,_maybe_avx}.
	(<sse4_1_avx2>_pblendvb): Ditto.
	(sse4_2_pcmpestr): Ditto.
	(*sse4_2_pcmpestr_unaligned): Ditto.
	(sse4_2_pcmpistr): Ditto.
	(*sse4_2_pcmpistr_unaligned): Ditto.
	* config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
	(nonimm_not_xmm0_operand): Ditto.
	(nonimm_not_xmm0_operand_maybe_avx): Ditto.
	(nonimm_not_xmm0_operand_maybe_avx): Ditto.
	* config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.

Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu
{,-m32} and committed to mainline SVN.

Uros.

Attachment: p.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]