[llvm-commits] [llvm] r47940 - /llvm/trunk/lib/Target/X86/X86InstrSSE.td
Evan Cheng
evan.cheng at apple.com
Wed Mar 5 00:11:28 PST 2008
Author: evancheng
Date: Wed Mar 5 02:11:27 2008
New Revision: 47940
URL: http://llvm.org/viewvc/llvm-project?rev=47940&view=rev
Log:
PSLLWri etc. are two-address instructions.
Modified:
llvm/trunk/lib/Target/X86/X86InstrSSE.td
Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=47940&r1=47939&r2=47940&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Wed Mar 5 02:11:27 2008
@@ -1765,7 +1765,7 @@
[(int_x86_sse2_storeu_dq addr:$dst, VR128:$src)]>,
XS, Requires<[HasSSE2]>;
-let isTwoAddress = 1 in {
+let Constraints = "$src1 = $dst" in {
multiclass PDI_binop_rm_int<bits<8> opc, string OpcodeStr, Intrinsic IntId,
bit Commutable = 0> {
@@ -1866,6 +1866,7 @@
defm PSRAD : PDI_binop_rm_int<0xE2, "psrad", int_x86_sse2_psra_d>;
// Some immediate variants need to match a bit_convert.
+let Constraints = "$src1 = $dst" in {
def PSLLWri : PDIi8<0x71, MRM6r, (outs VR128:$dst),
(ins VR128:$src1, i32i8imm:$src2),
"psllw\t{$src2, $dst|$dst, $src2}",
@@ -1908,6 +1909,7 @@
"psrad\t{$src2, $dst|$dst, $src2}",
[(set VR128:$dst, (int_x86_sse2_psra_d VR128:$src1,
(scalar_to_vector (i32 imm:$src2))))]>;
+}
// PSRAQ doesn't exist in SSE[1-3].
More information about the llvm-commits
mailing list