OSDN Git Service

[X86][SSE] Introduce Float/Vector WriteMove, WriteLoad and Writetore scheduler classes
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 15 Mar 2018 14:45:30 +0000 (14:45 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 15 Mar 2018 14:45:30 +0000 (14:45 +0000)
commite7dd436d9026f8d2d7deca605bf3bf82261b46f0
tree1a5cb607ee721fd9089c4edd6dd8a38ad5fa182d
parentdc55b3ba6883d4dc06cde88065a1a366121e0813
[X86][SSE] Introduce Float/Vector WriteMove, WriteLoad and Writetore scheduler classes

As discussed on D44428 and PR36726, this patch splits off WriteFMove/WriteVecMove, WriteFLoad/WriteVecLoad and WriteFStore/WriteVecStore scheduler classes to permit vectors to be handled separately from gpr/scalar types.

I've minimised the diff here by only moving various basic SSE/AVX vector instructions across - we can fix the rest when called for. This does fix the MOVDQA vs MOVAPS/MOVAPD discrepancies mentioned on D44428.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327630 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
lib/Target/X86/X86InstrSSE.td
lib/Target/X86/X86SchedBroadwell.td
lib/Target/X86/X86SchedHaswell.td
lib/Target/X86/X86SchedSandyBridge.td
lib/Target/X86/X86SchedSkylakeClient.td
lib/Target/X86/X86SchedSkylakeServer.td
lib/Target/X86/X86Schedule.td
lib/Target/X86/X86ScheduleBtVer2.td
lib/Target/X86/X86ScheduleSLM.td
lib/Target/X86/X86ScheduleZnver1.td
test/CodeGen/X86/avx-schedule.ll
test/CodeGen/X86/avx2-schedule.ll
test/CodeGen/X86/sha-schedule.ll
test/CodeGen/X86/sse-schedule.ll
test/CodeGen/X86/sse2-schedule.ll
test/CodeGen/X86/sse3-schedule.ll
test/CodeGen/X86/sse41-schedule.ll