summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-04-08 11:26:26 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-04-08 11:26:26 +0000
commit86588fc8097ee065756dc0c2b1f65ed462809d06 (patch)
tree57f23827621d7980a0b4965773c5c82eb0026835 /llvm/lib
parent360ef6f5cd31dc0038f1d6ec8a4246150d5846ea (diff)
downloadbcm5719-llvm-86588fc8097ee065756dc0c2b1f65ed462809d06.tar.gz
bcm5719-llvm-86588fc8097ee065756dc0c2b1f65ed462809d06.zip
[X86][Btver2] Add vector extract costs
llvm-svn: 329524
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ScheduleBtVer2.td19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
index fda8f7c7f5b..637dd4dcaeb 100644
--- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
@@ -370,6 +370,25 @@ defm : JWriteResFpuPair<WriteShuffle256, [JFPU01, JVALU], 1>;
defm : JWriteResFpuPair<WriteVarVecShift, [JFPU01, JVALU], 1>; // NOTE: Doesn't exist on Jaguar.
////////////////////////////////////////////////////////////////////////////////
+// Vector Extraction instructions.
+////////////////////////////////////////////////////////////////////////////////
+
+def JWritePEXTR : SchedWriteRes<[JFPU0, JFPA, JALU0]> { let Latency = 3; }
+def : InstRW<[JWritePEXTR], (instrs MMX_PEXTRWrr,
+ EXTRACTPSrr, VEXTRACTPSrr,
+ PEXTRBrr, VPEXTRBrr,
+ PEXTRDrr, VPEXTRDrr,
+ PEXTRQrr, VPEXTRQrr,
+ PEXTRWrr, VPEXTRWrr, PEXTRWrr_REV, VPEXTRWrr_REV)>;
+
+def JWritePEXTRSt : SchedWriteRes<[JFPU1, JSTC, JSAGU]> { let Latency = 3; }
+def : InstRW<[JWritePEXTRSt], (instrs EXTRACTPSmr, VEXTRACTPSmr,
+ PEXTRBmr, VPEXTRBmr,
+ PEXTRDmr, VPEXTRDmr,
+ PEXTRQmr, VPEXTRQmr,
+ PEXTRWmr, VPEXTRWmr)>;
+
+////////////////////////////////////////////////////////////////////////////////
// SSE42 String instructions.
////////////////////////////////////////////////////////////////////////////////
OpenPOWER on IntegriCloud