diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-03-23 17:38:59 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-03-23 17:38:59 +0000 |
| commit | e5c0a041ffe9797c1e8393c48aed300972e3d071 (patch) | |
| tree | 1195eb21e6a914b6acee078a17c4cb4365f8f3cf /llvm/lib/Target | |
| parent | 005c2e57a658bc18529de5027d52619dc4a2a72c (diff) | |
| download | bcm5719-llvm-e5c0a041ffe9797c1e8393c48aed300972e3d071.tar.gz bcm5719-llvm-e5c0a041ffe9797c1e8393c48aed300972e3d071.zip | |
[X86][Btver2] Cleanup MOVMSK instructions to use JFPA function unit
Add missing non-VEX and (V)PMOVMSKB instructions to the pattern
llvm-svn: 328338
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86ScheduleBtVer2.td | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td index 97842d2bf67..f982eafdd6a 100644 --- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td +++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td @@ -754,10 +754,12 @@ def : InstRW<[JWriteVMaskMovYSt], (instrs VMASKMOVPDYmr, VMASKMOVPSYmr)>; // operation which moves the floating point result to the integer unit. During this // additional cycle the floating point unit execution resources are not occupied // and ALU0 in the integer unit is occupied instead. -def JWriteVMOVMSK: SchedWriteRes<[JFPU0]> { +def JWriteVMOVMSK: SchedWriteRes<[JFPU0, JFPA]> { let Latency = 3; } -def : InstRW<[JWriteVMOVMSK], (instrs VMOVMSKPDrr, VMOVMSKPDYrr, VMOVMSKPSrr, VMOVMSKPSYrr)>; +def : InstRW<[JWriteVMOVMSK], (instrs MOVMSKPDrr, VMOVMSKPDrr, VMOVMSKPDYrr, + MOVMSKPSrr, VMOVMSKPSrr, VMOVMSKPSYrr, + PMOVMSKBrr, VPMOVMSKBrr)>; // TODO: In fact we have latency '3+i'. The +i represents an additional 1 cycle transfer // operation which moves the floating point result to the integer unit. During this |

