1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//===-- AMDILSIDevice.cpp - Device Info for Southern Islands GPUs ---------===//
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//                     The LLVM Compiler Infrastructure
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// This file is distributed under the University of Illinois Open Source
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// License. See LICENSE.TXT for details.
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org//==-----------------------------------------------------------------------===//
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDILSIDevice.h"
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDILEvergreenDevice.h"
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDILNIDevice.h"
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "AMDGPUSubtarget.h"
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgusing namespace llvm;
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAMDGPUSIDevice::AMDGPUSIDevice(AMDGPUSubtarget *ST)
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  : AMDGPUEvergreenDevice(ST)
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAMDGPUSIDevice::~AMDGPUSIDevice()
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgsize_t
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAMDGPUSIDevice::getMaxLDSSize() const
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  if (usesHardware(AMDGPUDeviceInfo::LocalMem)) {
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    return MAX_LDS_SIZE_900;
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  } else {
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    return 0;
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  }
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orguint32_t
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAMDGPUSIDevice::getGeneration() const
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org  return AMDGPUDeviceInfo::HD7XXX;
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstd::string
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAMDGPUSIDevice::getDataLayout() const
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    return std::string("e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16"
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org      "-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:32:32"
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org      "-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64"
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org      "-v96:128:128-v128:128:128-v192:256:256-v256:256:256"
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org      "-v512:512:512-v1024:1024:1024-v2048:2048:2048"
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org      "-n8:16:32:64");
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
50