[X86] Add variable shuffle schedule classes
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 11 Apr 2018 13:49:19 +0000 (13:49 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 11 Apr 2018 13:49:19 +0000 (13:49 +0000)
commit89c8a10f7c2e76d230fda7dd1ef0daa632555fd2
treef954f461330af1e45e7dfb51fc9d73a371011afc
parent7bcb5720fd38b882f514b428d36fdbbef417ab45
[X86] Add variable shuffle schedule classes

Split variable index shuffles from immediate index shuffles

WriteFVarShuffle - variable 'in-lane' shuffles (VPERMILPS/VPERMIL2PS etc.)
WriteVarShuffle - variable 'in-lane' shuffles (PSHUFB/VPPERM etc.)

WriteFVarShuffle256 - variable 'cross-lane' shuffles (VPERMPS etc.)
WriteVarShuffle256 - variable 'cross-lane' shuffles (VPERMD etc.)

Differential Revision: https://reviews.llvm.org/D45404

llvm-svn: 329806
17 files changed:
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrMMX.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/lib/Target/X86/X86InstrXOP.td
llvm/lib/Target/X86/X86SchedBroadwell.td
llvm/lib/Target/X86/X86SchedHaswell.td
llvm/lib/Target/X86/X86SchedSandyBridge.td
llvm/lib/Target/X86/X86SchedSkylakeClient.td
llvm/lib/Target/X86/X86SchedSkylakeServer.td
llvm/lib/Target/X86/X86Schedule.td
llvm/lib/Target/X86/X86ScheduleBtVer2.td
llvm/lib/Target/X86/X86ScheduleSLM.td
llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/test/CodeGen/X86/avx2-schedule.ll
llvm/test/CodeGen/X86/avx512-schedule.ll
llvm/test/CodeGen/X86/avx512-shuffle-schedule.ll
llvm/test/CodeGen/X86/xop-schedule.ll