| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
Btver2 - VCVTPH2PSYrm needs to double pump the AGU
Broadwell - missing VCVTPS2PH*mr stores extra latency
Allows us to remove the WriteCvtF2FSt conversion store class
llvm-svn: 332357
|
|
|
|
| |
llvm-svn: 332274
|
|
|
|
| |
llvm-svn: 332173
|
|
|
|
|
|
| |
Fixes a SNB issue that was missing vlddqu/vmovntdqa ymm instructions
llvm-svn: 332094
|
|
|
|
|
|
| |
Use instrs lists or merge multiple instregex patterns.
llvm-svn: 332022
|
|
|
|
| |
llvm-svn: 332002
|
|
|
|
|
|
|
|
| |
WriteVecALU/WriteVecLogic/WriteShuffle/WriteVarShuffle/WritePSADBW/WritePHAdd scheduler classes
Split off XMM classes from the default (MMX) classes.
llvm-svn: 331999
|
|
|
|
| |
llvm-svn: 331911
|
|
|
|
|
|
|
| |
This fixes a couple of BtVer2 missing instructions that weren't been handled in the override.
NOTE: There are still a lot of overrides that still need cleaning up!
llvm-svn: 331770
|
|
|
|
|
|
|
| |
I've created the necessary classes but there are still a lot of overrides that need cleaning up.
NOTE: The Znver1 model was missing some div/idiv variants in the instregex patterns and wasn't setting the resource cycles at all in the overrides.
llvm-svn: 331767
|
|
|
|
|
|
| |
Split off from existing vector load/store classes to remove InstRW overrides.
llvm-svn: 331760
|
|
|
|
|
|
| |
Split off from SchedWriteVecLogic to remove InstRW overrides.
llvm-svn: 331757
|
|
|
|
|
|
|
|
| |
Split to support single/double for scalar, XMM and YMM/ZMM instructions - removing InstrRW overrides for these instructions.
Fixes Atom ADDSUBPD instruction and reclassifies VFPCLASS as WriteFCmp which is closer in behaviour.
llvm-svn: 331672
|
|
|
|
|
|
|
|
| |
and YMM/ZMM instructions.
This removes all InstrRW overrides for these instructions - some x87 overrides remain but most use default (and realistic) values.
llvm-svn: 331643
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WriteFRcp/WriteFRsqrt are split to support scalar, XMM and YMM/ZMM instructions.
WriteFSqrt is split into single/double/long-double sizes and scalar, XMM, YMM and ZMM instructions.
This removes all InstrRW overrides for these instructions.
NOTE: There were a couple of typos in the Znver1 model - notably a 1cy throughput for SQRT that is highly unlikely and doesn't tally with Agner.
NOTE: I had to add Agner's numbers for several targets for WriteFSqrt80.
llvm-svn: 331629
|
|
|
|
|
|
| |
Filled in the missing values from Btver2 SoG or Agner
llvm-svn: 331546
|
|
|
|
|
|
| |
overrides.
llvm-svn: 331543
|
|
|
|
|
|
| |
Rename scalar and XMM versions, this is to match/simplify an upcoming change to split MUL/DIV/SQRT scalar/xmm/ymm/zmm classes.
llvm-svn: 331531
|
|
|
|
| |
llvm-svn: 331525
|
|
|
|
|
|
|
|
| |
Split off from SchedWriteFAdd for fp rounding/bit-manipulation instructions.
Fixes an issue on btver2 which only had the ymm version using the JSTC pipe instead of JFPA.
llvm-svn: 331515
|
|
|
|
| |
llvm-svn: 331489
|
|
|
|
|
|
|
|
| |
scheduler classes
This took a bit of extra work as on Intel targets the old (V)PSLLDrr/(V)PSLLDrm style instructions act differently - I ended up creating WriteVecShiftImm classes for XMM/YMM/ZMM vector shift by immediate and retaining WriteVecShift as the default (used only by MMX) plus WriteVecShiftX/WriteVecShiftY. X86SchedWriteWidths hides most of this thank goodness.
llvm-svn: 331472
|
|
|
|
| |
llvm-svn: 331453
|
|
|
|
|
|
|
|
| |
YMM/ZMM scheduler classes
Also retagged VDBPSADBW instructions as SchedWritePSADBW instead of SchedWriteVecIMul which matches the behaviour on SkylakeServer (the only thing that supports it...)
llvm-svn: 331445
|
|
|
|
|
|
| |
The entries were being bound to the wrong class.
llvm-svn: 331388
|
|
|
|
|
|
| |
and YMM/ZMM scheduler classes
llvm-svn: 331386
|
|
|
|
|
|
| |
classes with more common default values
llvm-svn: 331380
|
|
|
|
|
|
|
|
|
|
| |
values
Intel models were targeting x87 instead of packed sse.
Also fixes XOP's VFRCZ to use WriteFAdd/WriteFAddY.
llvm-svn: 331340
|
|
|
|
| |
llvm-svn: 331293
|
|
|
|
|
|
| |
classes
llvm-svn: 331290
|
|
|
|
|
|
| |
Removes more WriteFCmp InstRW overrides
llvm-svn: 331283
|
|
|
|
|
|
| |
Removes more WriteFAdd InstRW overrides
llvm-svn: 331276
|
|
|
|
|
|
| |
Removes more WriteFShuffle InstRW overrides
llvm-svn: 331264
|
|
|
|
|
|
| |
This removes all the WriteVecLogic InstRW overrides.
llvm-svn: 331258
|
|
|
|
| |
llvm-svn: 331143
|
|
|
|
| |
llvm-svn: 331084
|
|
|
|
|
|
|
|
| |
scheduler classes
This removes all the WriteFBlend/WriteFVarBlend InstRW overrides - some WriteFVarShuffle remain to be fixed.
llvm-svn: 331065
|
|
|
|
|
|
| |
This removes all the HADD/HSUB PS/PD InstRW overrides.
llvm-svn: 331054
|
|
|
|
|
|
| |
This removes all the AND/ANDN/OR/XOR PS/PD InstRW overrides.
llvm-svn: 331051
|
|
|
|
|
|
| |
entry. NFCI.
llvm-svn: 331034
|
|
|
|
|
|
|
|
| |
This removes all the FMA InstRW overrides.
If we ever get PR36924, then we can remove many of these declarations from models.
llvm-svn: 330820
|
|
|
|
| |
llvm-svn: 330812
|
|
|
|
|
|
| |
This also fixes Jaguar's schedule which was treating it as the WriteVecIMul default.
llvm-svn: 330756
|
|
|
|
|
|
| |
Fixes the classification of VCVTPS2PHmr/VCVTPS2PHYmr which were tagged as WriteCvtF2FLd_WriteRMW (PR36887)
llvm-svn: 330737
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split off pinsr/pextr and extractps instructions.
(Mostly) fixes PR36887.
Note: It might be worth adding a WriteFInsertLd class as well in the future.
Differential Revision: https://reviews.llvm.org/D45929
llvm-svn: 330714
|
|
|
|
| |
llvm-svn: 330648
|
|
|
|
| |
llvm-svn: 330611
|
|
|
|
| |
llvm-svn: 330581
|
|
|
|
|
|
| |
Fixed a lot of the default classes which were being completely overridden.
llvm-svn: 330554
|
|
|
|
| |
llvm-svn: 330553
|