comparison lib/Target/X86/X86Schedule.td @ 121:803732b1fca8

LLVM 5.0
author kono
date Fri, 27 Oct 2017 17:07:41 +0900
parents 1172e4bd9c6f
children
comparison
equal deleted inserted replaced
120:1172e4bd9c6f 121:803732b1fca8
74 defm WriteFBlend : X86SchedWritePair; // Floating point vector blends. 74 defm WriteFBlend : X86SchedWritePair; // Floating point vector blends.
75 defm WriteFVarBlend : X86SchedWritePair; // Fp vector variable blends. 75 defm WriteFVarBlend : X86SchedWritePair; // Fp vector variable blends.
76 76
77 // FMA Scheduling helper class. 77 // FMA Scheduling helper class.
78 class FMASC { X86FoldableSchedWrite Sched = WriteFAdd; } 78 class FMASC { X86FoldableSchedWrite Sched = WriteFAdd; }
79
80 // Horizontal Add/Sub (float and integer)
81 defm WriteFHAdd : X86SchedWritePair;
82 defm WritePHAdd : X86SchedWritePair;
79 83
80 // Vector integer operations. 84 // Vector integer operations.
81 defm WriteVecALU : X86SchedWritePair; // Vector integer ALU op, no logicals. 85 defm WriteVecALU : X86SchedWritePair; // Vector integer ALU op, no logicals.
82 defm WriteVecShift : X86SchedWritePair; // Vector integer shifts. 86 defm WriteVecShift : X86SchedWritePair; // Vector integer shifts.
83 defm WriteVecIMul : X86SchedWritePair; // Vector integer multiply. 87 defm WriteVecIMul : X86SchedWritePair; // Vector integer multiply.
293 297
294 def IIC_SSE_SHUFP : InstrItinClass; 298 def IIC_SSE_SHUFP : InstrItinClass;
295 def IIC_SSE_PSHUF_RI : InstrItinClass; 299 def IIC_SSE_PSHUF_RI : InstrItinClass;
296 def IIC_SSE_PSHUF_MI : InstrItinClass; 300 def IIC_SSE_PSHUF_MI : InstrItinClass;
297 301
302 def IIC_SSE_PACK : InstrItinClass;
298 def IIC_SSE_UNPCK : InstrItinClass; 303 def IIC_SSE_UNPCK : InstrItinClass;
299 304
300 def IIC_SSE_MOVMSK : InstrItinClass; 305 def IIC_SSE_MOVMSK : InstrItinClass;
301 def IIC_SSE_MASKMOV : InstrItinClass; 306 def IIC_SSE_MASKMOV : InstrItinClass;
302 307
364 def IIC_SSE_PALIGNRM : InstrItinClass; 369 def IIC_SSE_PALIGNRM : InstrItinClass;
365 def IIC_SSE_MWAIT : InstrItinClass; 370 def IIC_SSE_MWAIT : InstrItinClass;
366 def IIC_SSE_MONITOR : InstrItinClass; 371 def IIC_SSE_MONITOR : InstrItinClass;
367 def IIC_SSE_MWAITX : InstrItinClass; 372 def IIC_SSE_MWAITX : InstrItinClass;
368 def IIC_SSE_MONITORX : InstrItinClass; 373 def IIC_SSE_MONITORX : InstrItinClass;
374 def IIC_SSE_CLZERO : InstrItinClass;
369 375
370 def IIC_SSE_PREFETCH : InstrItinClass; 376 def IIC_SSE_PREFETCH : InstrItinClass;
371 def IIC_SSE_PAUSE : InstrItinClass; 377 def IIC_SSE_PAUSE : InstrItinClass;
372 def IIC_SSE_LFENCE : InstrItinClass; 378 def IIC_SSE_LFENCE : InstrItinClass;
373 def IIC_SSE_MFENCE : InstrItinClass; 379 def IIC_SSE_MFENCE : InstrItinClass;
494 def IIC_IN_RR : InstrItinClass; 500 def IIC_IN_RR : InstrItinClass;
495 def IIC_IN_RI : InstrItinClass; 501 def IIC_IN_RI : InstrItinClass;
496 def IIC_OUT_RR : InstrItinClass; 502 def IIC_OUT_RR : InstrItinClass;
497 def IIC_OUT_IR : InstrItinClass; 503 def IIC_OUT_IR : InstrItinClass;
498 def IIC_INS : InstrItinClass; 504 def IIC_INS : InstrItinClass;
505 def IIC_LWP : InstrItinClass;
499 def IIC_MOV_REG_DR : InstrItinClass; 506 def IIC_MOV_REG_DR : InstrItinClass;
500 def IIC_MOV_DR_REG : InstrItinClass; 507 def IIC_MOV_DR_REG : InstrItinClass;
501 def IIC_MOV_REG_CR : InstrItinClass; 508 def IIC_MOV_REG_CR : InstrItinClass;
502 def IIC_MOV_CR_REG : InstrItinClass; 509 def IIC_MOV_CR_REG : InstrItinClass;
503 def IIC_MOV_REG_SR : InstrItinClass; 510 def IIC_MOV_REG_SR : InstrItinClass;
654 } 661 }
655 662
656 include "X86ScheduleAtom.td" 663 include "X86ScheduleAtom.td"
657 include "X86SchedSandyBridge.td" 664 include "X86SchedSandyBridge.td"
658 include "X86SchedHaswell.td" 665 include "X86SchedHaswell.td"
666 include "X86SchedBroadwell.td"
659 include "X86ScheduleSLM.td" 667 include "X86ScheduleSLM.td"
668 include "X86ScheduleZnver1.td"
660 include "X86ScheduleBtVer2.td" 669 include "X86ScheduleBtVer2.td"
661 670 include "X86SchedSkylakeClient.td"
671 include "X86SchedSkylakeServer.td"
672