1// REQUIRES: clang-driver
2// REQUIRES: x86-registered-target
3// REQUIRES: amdgpu-registered-target
4
5// RUN: %clang -E -dM -target amdgcn-amd-amdhsa \
6// RUN:   -mcpu=gfx908:xnack+:sramecc- -nogpulib -o - %s 2>&1 \
7// RUN:   | FileCheck -check-prefixes=PROC,ID1 %s
8
9// RUN: %clang -E -dM -target amdgcn-amd-amdpal \
10// RUN:   -mcpu=gfx908:xnack+:sramecc- -nogpulib -o - %s 2>&1 \
11// RUN:   | FileCheck -check-prefixes=PROC,ID1 %s
12
13// RUN: %clang -E -dM -target amdgcn--mesa3d \
14// RUN:   -mcpu=gfx908:xnack+:sramecc- -nogpulib -o - %s 2>&1 \
15// RUN:   | FileCheck -check-prefixes=PROC,ID1 %s
16
17// RUN: %clang -E -dM -target amdgcn-amd-amdhsa \
18// RUN:   -mcpu=gfx908 -nogpulib -o - %s 2>&1 \
19// RUN:   | FileCheck -check-prefixes=PROC,ID2 %s
20
21// RUN: %clang -E -dM -target amdgcn-amd-amdhsa \
22// RUN:   -nogpulib -o - %s 2>&1 \
23// RUN:   | FileCheck -check-prefixes=NONE %s
24
25// PROC-DAG: #define __amdgcn_processor__ "gfx908"
26
27// ID1-DAG: #define __amdgcn_feature_xnack__ 1
28// ID1-DAG: #define __amdgcn_feature_sramecc__ 0
29// ID1-DAG: #define __amdgcn_target_id__ "gfx908:sramecc-:xnack+"
30
31// ID2-DAG: #define __amdgcn_target_id__ "gfx908"
32// ID2-NOT: #define __amdgcn_feature_xnack__
33// ID2-NOT: #define __amdgcn_feature_sramecc__
34
35// NONE-NOT: #define __amdgcn_processor__
36// NONE-NOT: #define __amdgcn_feature_xnack__
37// NONE-NOT: #define __amdgcn_feature_sramecc__
38// NONE-NOT: #define __amdgcn_target_id__
39