1; RUN: llc -march=amdgcn -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=GCN %s
2; RUN: llc -march=amdgcn -mcpu=fiji -verify-machineinstrs < %s | FileCheck -check-prefix=VI-NOXNACK -check-prefix=GCN %s
3
4; RUN: llc -march=amdgcn -mcpu=carrizo -mattr=-xnack -verify-machineinstrs < %s | FileCheck -check-prefix=VI-NOXNACK  -check-prefix=GCN %s
5; RUN: llc -march=amdgcn -mcpu=stoney -mattr=-xnack -verify-machineinstrs < %s | FileCheck -check-prefix=VI-NOXNACK  -check-prefix=GCN %s
6
7; RUN: llc -march=amdgcn -mcpu=carrizo -verify-machineinstrs < %s | FileCheck -check-prefix=VI-XNACK  -check-prefix=GCN %s
8; RUN: llc -march=amdgcn -mcpu=stoney -verify-machineinstrs < %s | FileCheck -check-prefix=VI-XNACK  -check-prefix=GCN %s
9
10; RUN: llc -march=amdgcn -mtriple=amdgcn--amdhsa -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=HSA-CI -check-prefix=GCN %s
11; RUN: llc -march=amdgcn -mtriple=amdgcn--amdhsa -mcpu=carrizo -mattr=-xnack -verify-machineinstrs < %s | FileCheck -check-prefix=HSA-VI-NOXNACK -check-prefix=GCN %s
12; RUN: llc -march=amdgcn -mtriple=amdgcn--amdhsa -mcpu=carrizo -mattr=+xnack -verify-machineinstrs < %s | FileCheck -check-prefix=HSA-VI-XNACK -check-prefix=GCN %s
13
14; GCN-LABEL: {{^}}no_vcc_no_flat:
15; HSA-CI: is_xnack_enabled = 0
16; HSA-VI-NOXNACK: is_xnack_enabled = 0
17; HSA-VI-XNACK: is_xnack_enabled = 1
18
19; CI: ; NumSgprs: 8
20; VI-NOXNACK: ; NumSgprs: 8
21; VI-XNACK: ; NumSgprs: 12
22define void @no_vcc_no_flat() {
23entry:
24  call void asm sideeffect "", "~{SGPR7}"()
25  ret void
26}
27
28; GCN-LABEL: {{^}}vcc_no_flat:
29; HSA-CI: is_xnack_enabled = 0
30; HSA-VI-NOXNACK: is_xnack_enabled = 0
31; HSA-VI-XNACK: is_xnack_enabled = 1
32
33; CI: ; NumSgprs: 10
34; VI-NOXNACK: ; NumSgprs: 10
35; VI-XNACK: ; NumSgprs: 12
36define void @vcc_no_flat() {
37entry:
38  call void asm sideeffect "", "~{SGPR7},~{VCC}"()
39  ret void
40}
41
42; GCN-LABEL: {{^}}no_vcc_flat:
43; HSA-CI: is_xnack_enabled = 0
44; HSA-VI-NOXNACK: is_xnack_enabled = 0
45; HSA-VI-XNACK: is_xnack_enabled = 1
46
47; CI: ; NumSgprs: 8
48; VI-NOXNACK: ; NumSgprs: 8
49; VI-XNACK: ; NumSgprs: 12
50; HSA-CI: ; NumSgprs: 8
51; HSA-VI-NOXNACK: ; NumSgprs: 8
52; HSA-VI-XNACK: ; NumSgprs: 12
53define void @no_vcc_flat() {
54entry:
55  call void asm sideeffect "", "~{SGPR7},~{FLAT_SCR}"()
56  ret void
57}
58
59; GCN-LABEL: {{^}}vcc_flat:
60; HSA-NOXNACK: is_xnack_enabled = 0
61; HSA-XNACK: is_xnack_enabled = 1
62
63; CI: ; NumSgprs: 10
64; VI-NOXNACK: ; NumSgprs: 10
65; VI-XNACK: ; NumSgprs: 12
66; HSA-CI: ; NumSgprs: 10
67; HSA-VI-NOXNACK: ; NumSgprs: 10
68; HSA-VI-XNACK: ; NumSgprs: 12
69define void @vcc_flat() {
70entry:
71  call void asm sideeffect "", "~{SGPR7},~{VCC},~{FLAT_SCR}"()
72  ret void
73}
74