Skip to content

Commit 5960848

Browse files
committedAug 17, 2017
[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 llvm-svn: 311090
1 parent bcfd8e2 commit 5960848

File tree

2 files changed

+2
-11
lines changed

2 files changed

+2
-11
lines changed
 

Diff for: ‎llvm/lib/Target/X86/X86InstrFragmentsSIMD.td

-9
Original file line numberDiff line numberDiff line change
@@ -761,15 +761,6 @@ def memopv4f32 : PatFrag<(ops node:$ptr), (v4f32 (memop node:$ptr))>;
761761
def memopv2f64 : PatFrag<(ops node:$ptr), (v2f64 (memop node:$ptr))>;
762762
def memopv2i64 : PatFrag<(ops node:$ptr), (v2i64 (memop node:$ptr))>;
763763

764-
// SSSE3 uses MMX registers for some instructions. They aren't aligned on a
765-
// 16-byte boundary.
766-
// FIXME: 8 byte alignment for mmx reads is not required
767-
def memop64 : PatFrag<(ops node:$ptr), (load node:$ptr), [{
768-
return cast<LoadSDNode>(N)->getAlignment() >= 8;
769-
}]>;
770-
771-
def memopmmx : PatFrag<(ops node:$ptr), (x86mmx (memop64 node:$ptr))>;
772-
773764
def X86masked_gather : SDNode<"X86ISD::MGATHER", SDTMaskedGather,
774765
[SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
775766

Diff for: ‎llvm/lib/Target/X86/X86InstrMMX.td

+2-2
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ multiclass SS3I_unop_rm_int_mm<bits<8> opc, string OpcodeStr,
143143
def rm64 : MMXSS38I<opc, MRMSrcMem, (outs VR64:$dst), (ins i64mem:$src),
144144
!strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"),
145145
[(set VR64:$dst,
146-
(IntId64 (bitconvert (memopmmx addr:$src))))],
146+
(IntId64 (bitconvert (load_mmx addr:$src))))],
147147
itins.rm>, Sched<[itins.Sched.Folded]>;
148148
}
149149

@@ -163,7 +163,7 @@ multiclass SS3I_binop_rm_int_mm<bits<8> opc, string OpcodeStr,
163163
!strconcat(OpcodeStr, "\t{$src2, $dst|$dst, $src2}"),
164164
[(set VR64:$dst,
165165
(IntId64 VR64:$src1,
166-
(bitconvert (memopmmx addr:$src2))))], itins.rm>,
166+
(bitconvert (load_mmx addr:$src2))))], itins.rm>,
167167
Sched<[itins.Sched.Folded, ReadAfterLd]>;
168168
}
169169
}

0 commit comments

Comments
 (0)
Please sign in to comment.