From: Evan Cheng Date: Wed, 5 Mar 2008 08:11:27 +0000 (+0000) Subject: PSLLWri etc. are two-address instructions. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e7b8a8b7138342b41b6260d15a89a870a63c744c;p=oota-llvm.git PSLLWri etc. are two-address instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47940 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index 46f70da83d2..35b575b9d86 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -1765,7 +1765,7 @@ def MOVDQUmr_Int : I<0x7F, MRMDestMem, (outs), (ins i128mem:$dst, VR128:$src), [(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 opc, string OpcodeStr, Intrinsic IntId, bit Commutable = 0> { @@ -1866,6 +1866,7 @@ defm PSRAW : PDI_binop_rm_int<0xE1, "psraw", int_x86_sse2_psra_w>; 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 @@ def PSRADri : PDIi8<0x72, MRM4r, (outs VR128:$dst), "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].