diff options
Diffstat (limited to 'contrib/llvm/lib/Target/R600/Processors.td')
-rw-r--r-- | contrib/llvm/lib/Target/R600/Processors.td | 84 |
1 files changed, 70 insertions, 14 deletions
diff --git a/contrib/llvm/lib/Target/R600/Processors.td b/contrib/llvm/lib/Target/R600/Processors.td index ee190e4aed7b..ce17d7cb7f13 100644 --- a/contrib/llvm/lib/Target/R600/Processors.td +++ b/contrib/llvm/lib/Target/R600/Processors.td @@ -9,46 +9,102 @@ class Proc<string Name, ProcessorItineraries itin, list<SubtargetFeature> Features> : Processor<Name, itin, Features>; + +//===----------------------------------------------------------------------===// +// R600 +//===----------------------------------------------------------------------===// def : Proc<"", R600_VLIW5_Itin, [FeatureR600, FeatureVertexCache]>; + def : Proc<"r600", R600_VLIW5_Itin, - [FeatureR600 , FeatureVertexCache]>; + [FeatureR600 , FeatureVertexCache, FeatureWavefrontSize64]>; + +def : Proc<"r630", R600_VLIW5_Itin, + [FeatureR600, FeatureVertexCache, FeatureWavefrontSize32]>; + def : Proc<"rs880", R600_VLIW5_Itin, - [FeatureR600]>; + [FeatureR600, FeatureWavefrontSize16]>; + def : Proc<"rv670", R600_VLIW5_Itin, - [FeatureR600, FeatureFP64, FeatureVertexCache]>; + [FeatureR600, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>; + +//===----------------------------------------------------------------------===// +// R700 +//===----------------------------------------------------------------------===// + def : Proc<"rv710", R600_VLIW5_Itin, - [FeatureR700, FeatureVertexCache]>; + [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>; + def : Proc<"rv730", R600_VLIW5_Itin, - [FeatureR700, FeatureVertexCache]>; + [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>; + def : Proc<"rv770", R600_VLIW5_Itin, - [FeatureR700, FeatureFP64, FeatureVertexCache]>; + [FeatureR700, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>; + +//===----------------------------------------------------------------------===// +// Evergreen +//===----------------------------------------------------------------------===// + def : Proc<"cedar", R600_VLIW5_Itin, - [FeatureEvergreen, FeatureVertexCache]>; + [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize32, + FeatureCFALUBug]>; + def : Proc<"redwood", R600_VLIW5_Itin, - [FeatureEvergreen, FeatureVertexCache]>; + [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64, + FeatureCFALUBug]>; + def : Proc<"sumo", R600_VLIW5_Itin, - [FeatureEvergreen]>; + [FeatureEvergreen, FeatureWavefrontSize64, FeatureCFALUBug]>; + def : Proc<"juniper", R600_VLIW5_Itin, - [FeatureEvergreen, FeatureVertexCache]>; + [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64]>; + def : Proc<"cypress", R600_VLIW5_Itin, - [FeatureEvergreen, FeatureFP64, FeatureVertexCache]>; + [FeatureEvergreen, FeatureFP64, FeatureVertexCache, + FeatureWavefrontSize64]>; + +//===----------------------------------------------------------------------===// +// Northern Islands +//===----------------------------------------------------------------------===// + def : Proc<"barts", R600_VLIW5_Itin, - [FeatureNorthernIslands, FeatureVertexCache]>; + [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]>; + def : Proc<"turks", R600_VLIW5_Itin, - [FeatureNorthernIslands, FeatureVertexCache]>; + [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]>; + def : Proc<"caicos", R600_VLIW5_Itin, - [FeatureNorthernIslands]>; + [FeatureNorthernIslands, FeatureCFALUBug]>; + def : Proc<"cayman", R600_VLIW4_Itin, [FeatureNorthernIslands, FeatureFP64, FeatureCaymanISA]>; +//===----------------------------------------------------------------------===// +// Southern Islands +//===----------------------------------------------------------------------===// + def : Proc<"SI", SI_Itin, [FeatureSouthernIslands]>; + def : Proc<"tahiti", SI_Itin, [FeatureSouthernIslands]>; + def : Proc<"pitcairn", SI_Itin, [FeatureSouthernIslands]>; + def : Proc<"verde", SI_Itin, [FeatureSouthernIslands]>; + def : Proc<"oland", SI_Itin, [FeatureSouthernIslands]>; + def : Proc<"hainan", SI_Itin, [FeatureSouthernIslands]>; + +//===----------------------------------------------------------------------===// +// Sea Islands +//===----------------------------------------------------------------------===// + def : Proc<"bonaire", SI_Itin, [FeatureSeaIslands]>; + def : Proc<"kabini", SI_Itin, [FeatureSeaIslands]>; + def : Proc<"kaveri", SI_Itin, [FeatureSeaIslands]>; + def : Proc<"hawaii", SI_Itin, [FeatureSeaIslands]>; + +def : Proc<"mullins", SI_Itin, [FeatureSeaIslands]>; |