md (reg_not_xmm0_operand): New predicate.
authorUros Bizjak <ubizjak@gmail.com>
Tue, 5 Jun 2007 05:35:39 +0000 (07:35 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 5 Jun 2007 05:35:39 +0000 (07:35 +0200)
commitcb4828955fe7194b951609dc35f6fbb55b2cde10
treecd272f190dad215f8c5b6ceb9c0260d707ef0b3d
parent2eaad86a2c1d3b760f7a08a74bd3a784b13c506b
md (reg_not_xmm0_operand): New predicate.

* config/i386/predicates/md (reg_not_xmm0_operand): New predicate.
(nonimm_not_xmm0_operand): Ditto.
* config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
as operand[2] predicate.  Require "z" class XMM register for
operand[3].  Adjust asm template.
("sse4_1_blendvpd"): Ditto.
("sse4_1_pblendvb"): Ditto.
  * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
force op2 into xmm0 register for variable blend instructions.

From-SVN: r125327
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/predicates.md
gcc/config/i386/sse.md