188 lines · plain
1; RUN: llc < %s -mtriple=amdgcn -mcpu=kaveri | FileCheck -check-prefix=CI -check-prefix=GCN %s2; RUN: llc < %s -mtriple=amdgcn -mcpu=fiji -mattr=-xnack | FileCheck -check-prefix=VI-NOXNACK -check-prefix=GCN %s3 4; RUN: llc < %s -mtriple=amdgcn -mcpu=carrizo -mattr=-xnack | FileCheck -check-prefixes=VI-NOXNACK,GCN %s5; RUN: llc < %s -mtriple=amdgcn -mcpu=stoney -mattr=-xnack | FileCheck -check-prefixes=VI-NOXNACK,GCN %s6 7; RUN: llc < %s -mtriple=amdgcn -mcpu=carrizo -mattr=+xnack | FileCheck -check-prefix=VI-XNACK -check-prefix=GCN %s8; RUN: llc < %s -mtriple=amdgcn -mcpu=stoney -mattr=+xnack | FileCheck -check-prefix=VI-XNACK -check-prefix=GCN %s9 10; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | FileCheck -check-prefixes=GCN %s11; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=carrizo -mattr=-xnack | FileCheck -check-prefixes=HSA-VI-NOXNACK,GCN %s12; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=carrizo -mattr=+xnack | FileCheck -check-prefixes=HSA-VI-XNACK,GCN %s13 14; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=gfx900 -mattr=+architected-flat-scratch | FileCheck -check-prefixes=GCN %s15; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=gfx900 -mattr=+architected-flat-scratch,-xnack | FileCheck -check-prefixes=GFX9-ARCH-FLAT-NOXNACK,GCN %s16; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=gfx900 -mattr=+architected-flat-scratch,+xnack | FileCheck -check-prefixes=GFX9-ARCH-FLAT-XNACK,GCN %s17 18; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=gfx1010 -mattr=+architected-flat-scratch | FileCheck -check-prefixes=GCN %s19; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=gfx1010 -mattr=+architected-flat-scratch,-xnack | FileCheck -check-prefixes=GFX10-ARCH-FLAT-NOXNACK,GCN %s20; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=gfx1010 -mattr=+architected-flat-scratch,+xnack | FileCheck -check-prefixes=GFX10-ARCH-FLAT-XNACK,GCN %s21 22; GCN-LABEL: {{^}}no_vcc_no_flat:23 24; NOT-HSA-CI: .amdhsa_reserve_xnack_mask25; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 026; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 127; GFX9-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 128; GFX10-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 129 30; CI: ; TotalNumSgprs: 831; VI-NOXNACK: ; TotalNumSgprs: 832; HSA-VI-NOXNACK: ; TotalNumSgprs: 833; VI-XNACK: ; TotalNumSgprs: 1234; HSA-VI-XNACK: ; TotalNumSgprs: 1235; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 1436; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 1437; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 838; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 839define amdgpu_kernel void @no_vcc_no_flat() {40entry:41 call void asm sideeffect "", "~{s7}"()42 ret void43}44 45; GCN-LABEL: {{^}}vcc_no_flat:46 47; NOT-HSA-CI: .amdhsa_reserve_xnack_mask48; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 049; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 150; GFX9-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 151; GFX10-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 152 53; CI: ; TotalNumSgprs: 1054; VI-NOXNACK: ; TotalNumSgprs: 1055; HSA-VI-NOXNACK: ; TotalNumSgprs: 1056; VI-XNACK: ; TotalNumSgprs: 1257; HSA-VI-XNACK: ; TotalNumSgprs: 1258; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 1459; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 1460; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 1061; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 1062define amdgpu_kernel void @vcc_no_flat() {63entry:64 call void asm sideeffect "", "~{s7},~{vcc}"()65 ret void66}67 68; GCN-LABEL: {{^}}no_vcc_flat:69 70; NOT-HSA-CI: .amdhsa_reserve_xnack_mask71; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 072; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 173; GFX9-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 174; GFX10-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 175 76; CI: ; TotalNumSgprs: 1277; VI-NOXNACK: ; TotalNumSgprs: 1478; HSA-VI-NOXNACK: ; TotalNumSgprs: 2479; VI-XNACK: ; TotalNumSgprs: 1480; HSA-VI-XNACK: ; TotalNumSgprs: 2481; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 1482; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 1483; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 884; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 885define amdgpu_kernel void @no_vcc_flat() {86entry:87 call void asm sideeffect "", "~{s7},~{flat_scratch}"()88 ret void89}90 91; GCN-LABEL: {{^}}vcc_flat:92 93; NOT-HSA-CI: .amdhsa_reserve_xnack_mask94; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 095; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 196; GFX9-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 197; GFX10-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 198 99; CI: ; TotalNumSgprs: 12100; VI-NOXNACK: ; TotalNumSgprs: 14101; HSA-VI-NOXNACK: ; TotalNumSgprs: 24102; VI-XNACK: ; TotalNumSgprs: 14103; HSA-VI-XNACK: ; TotalNumSgprs: 24104; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 14105; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 14106; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 10107; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 10108define amdgpu_kernel void @vcc_flat() {109entry:110 call void asm sideeffect "", "~{s7},~{vcc},~{flat_scratch}"()111 ret void112}113 114; Make sure used SGPR count for flat_scr is correct when there is no115; scratch usage and implicit flat uses.116 117; GCN-LABEL: {{^}}use_flat_scr:118 119; NOT-HSA-CI: .amdhsa_reserve_xnack_mask120; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 0121; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 1122; GFX9-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 1123; GFX10-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 1124 125; CI: NumSgprs: 4126; VI-NOXNACK: NumSgprs: 6127; HSA-VI-NOXNACK: NumSgprs: 24128; VI-XNACK: NumSgprs: 6129; HSA-VI-XNACK: NumSgprs: 24130; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 6131; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 6132; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 0133; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 0134define amdgpu_kernel void @use_flat_scr() #0 {135entry:136 call void asm sideeffect "; clobber ", "~{flat_scratch}"()137 ret void138}139 140; GCN-LABEL: {{^}}use_flat_scr_lo:141 142; NOT-HSA-CI: .amdhsa_reserve_xnack_mask143; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 0144; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 1145 146; CI: NumSgprs: 4147; VI-NOXNACK: NumSgprs: 6148; HSA-VI-NOXNACK: NumSgprs: 24149; VI-XNACK: NumSgprs: 6150; HSA-VI-XNACK: NumSgprs: 24151; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 6152; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 6153; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 0154; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 0155define amdgpu_kernel void @use_flat_scr_lo() #0 {156entry:157 call void asm sideeffect "; clobber ", "~{flat_scratch_lo}"()158 ret void159}160 161; GCN-LABEL: {{^}}use_flat_scr_hi:162 163; NOT-HSA-CI: .amdhsa_reserve_xnack_mask164; HSA-VI-NOXNACK: .amdhsa_reserve_xnack_mask 0165; HSA-VI-XNACK: .amdhsa_reserve_xnack_mask 1166; GFX9-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 1167; GFX10-ARCH-FLAT-XNACK: .amdhsa_reserve_xnack_mask 1168 169; CI: NumSgprs: 4170; VI-NOXNACK: NumSgprs: 6171; HSA-VI-NOXNACK: NumSgprs: 24172; VI-XNACK: NumSgprs: 6173; HSA-VI-XNACK: NumSgprs: 24174; GFX9-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 6175; GFX9-ARCH-FLAT-XNACK: ; TotalNumSgprs: 6176; GFX10-ARCH-FLAT-NOXNACK: ; TotalNumSgprs: 0177; GFX10-ARCH-FLAT-XNACK: ; TotalNumSgprs: 0178define amdgpu_kernel void @use_flat_scr_hi() #0 {179entry:180 call void asm sideeffect "; clobber ", "~{flat_scratch_hi}"()181 ret void182}183 184attributes #0 = { nounwind }185 186!llvm.module.flags = !{!0}187!0 = !{i32 1, !"amdhsa_code_object_version", i32 400}188