diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-11-26 17:56:07 +0000 | 
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-11-26 17:56:07 +0000 | 
| commit | f545bb6caead6ddbfc1d8fcafcc50417099ed79d (patch) | |
| tree | 4055f37b58945d9655d803a3d559c37e6575846d /llvm/lib | |
| parent | b05f37afcb9a8d29589c59e9c90dfb516771310d (diff) | |
| download | bcm5719-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.td | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86Schedule.td | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ScheduleAtom.td | 1 | 
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]>] >, | 

