summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-11-26 17:56:07 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-11-26 17:56:07 +0000
commitf545bb6caead6ddbfc1d8fcafcc50417099ed79d (patch)
tree4055f37b58945d9655d803a3d559c37e6575846d /llvm/lib
parentb05f37afcb9a8d29589c59e9c90dfb516771310d (diff)
downloadbcm5719-llvm-f545bb6caead6ddbfc1d8fcafcc50417099ed79d.tar.gz
bcm5719-llvm-f545bb6caead6ddbfc1d8fcafcc50417099ed79d.zip
[X86][MMX] Add IIC_MMX_MOVMSK instruction itinerary class
llvm-svn: 318999
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86InstrMMX.td3
-rw-r--r--llvm/lib/Target/X86/X86Schedule.td2
-rw-r--r--llvm/lib/Target/X86/X86ScheduleAtom.td1
3 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86InstrMMX.td b/llvm/lib/Target/X86/X86InstrMMX.td
index d387f93109e..039b4a24854 100644
--- a/llvm/lib/Target/X86/X86InstrMMX.td
+++ b/llvm/lib/Target/X86/X86InstrMMX.td
@@ -616,7 +616,8 @@ def MMX_PMOVMSKBrr : MMXI<0xD7, MRMSrcReg, (outs GR32orGR64:$dst),
(ins VR64:$src),
"pmovmskb\t{$src, $dst|$dst, $src}",
[(set GR32orGR64:$dst,
- (int_x86_mmx_pmovmskb VR64:$src))]>;
+ (int_x86_mmx_pmovmskb VR64:$src))],
+ IIC_MMX_MOVMSK>, Sched<[WriteVecLogic]>;
// Low word of XMM to MMX.
def MMX_X86movdq2q : SDNode<"X86ISD::MOVDQ2Q", SDTypeProfile<1, 1,
diff --git a/llvm/lib/Target/X86/X86Schedule.td b/llvm/lib/Target/X86/X86Schedule.td
index fcf9f4ff638..91d450c1ffb 100644
--- a/llvm/lib/Target/X86/X86Schedule.td
+++ b/llvm/lib/Target/X86/X86Schedule.td
@@ -426,7 +426,7 @@ def IIC_MMX_PSHUF : InstrItinClass;
def IIC_MMX_PEXTR : InstrItinClass;
def IIC_MMX_PINSRW : InstrItinClass;
def IIC_MMX_MASKMOV : InstrItinClass;
-
+def IIC_MMX_MOVMSK : InstrItinClass;
def IIC_MMX_CVT_PD_RR : InstrItinClass;
def IIC_MMX_CVT_PD_RM : InstrItinClass;
def IIC_MMX_CVT_PS_RR : InstrItinClass;
diff --git a/llvm/lib/Target/X86/X86ScheduleAtom.td b/llvm/lib/Target/X86/X86ScheduleAtom.td
index 200a3216f6f..1a070f79de6 100644
--- a/llvm/lib/Target/X86/X86ScheduleAtom.td
+++ b/llvm/lib/Target/X86/X86ScheduleAtom.td
@@ -338,6 +338,7 @@ def AtomItineraries : ProcessorItineraries<
InstrItinData<IIC_MMX_PEXTR, [InstrStage<4, [Port0, Port1]>] >,
InstrItinData<IIC_MMX_PINSRW, [InstrStage<1, [Port0]>] >,
InstrItinData<IIC_MMX_MASKMOV, [InstrStage<1, [Port0]>] >,
+ InstrItinData<IIC_MMX_MOVMSK, [InstrStage<3, [Port0]>] >,
// conversions
// from/to PD
InstrItinData<IIC_MMX_CVT_PD_RR, [InstrStage<7, [Port0, Port1]>] >,
OpenPOWER on IntegriCloud