From: Craig Topper Date: Thu, 17 Aug 2017 15:25:05 +0000 (+0000) Subject: [X86] Remove memopmmx pattern fragment X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd0efe6d443a383e6489be4656dc53580dab1bf8;p=llvm [X86] Remove memopmmx pattern fragment Summary: Just like the FIXME says, there is no alignment requirement for MMX. Reviewers: RKSimon, zvi, igorb Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D36815 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311090 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrFragmentsSIMD.td b/lib/Target/X86/X86InstrFragmentsSIMD.td index bca26f961f3..7bb6d9278c7 100644 --- a/lib/Target/X86/X86InstrFragmentsSIMD.td +++ b/lib/Target/X86/X86InstrFragmentsSIMD.td @@ -761,15 +761,6 @@ def memopv4f32 : PatFrag<(ops node:$ptr), (v4f32 (memop node:$ptr))>; def memopv2f64 : PatFrag<(ops node:$ptr), (v2f64 (memop node:$ptr))>; def memopv2i64 : PatFrag<(ops node:$ptr), (v2i64 (memop node:$ptr))>; -// SSSE3 uses MMX registers for some instructions. They aren't aligned on a -// 16-byte boundary. -// FIXME: 8 byte alignment for mmx reads is not required -def memop64 : PatFrag<(ops node:$ptr), (load node:$ptr), [{ - return cast(N)->getAlignment() >= 8; -}]>; - -def memopmmx : PatFrag<(ops node:$ptr), (x86mmx (memop64 node:$ptr))>; - def X86masked_gather : SDNode<"X86ISD::MGATHER", SDTMaskedGather, [SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>; diff --git a/lib/Target/X86/X86InstrMMX.td b/lib/Target/X86/X86InstrMMX.td index 2c047722db2..d387f93109e 100644 --- a/lib/Target/X86/X86InstrMMX.td +++ b/lib/Target/X86/X86InstrMMX.td @@ -143,7 +143,7 @@ multiclass SS3I_unop_rm_int_mm opc, string OpcodeStr, def rm64 : MMXSS38I, Sched<[itins.Sched.Folded]>; } @@ -163,7 +163,7 @@ multiclass SS3I_binop_rm_int_mm opc, string OpcodeStr, !strconcat(OpcodeStr, "\t{$src2, $dst|$dst, $src2}"), [(set VR64:$dst, (IntId64 VR64:$src1, - (bitconvert (memopmmx addr:$src2))))], itins.rm>, + (bitconvert (load_mmx addr:$src2))))], itins.rm>, Sched<[itins.Sched.Folded, ReadAfterLd]>; } }