Home | History | Annotate | Download | only in AMDGPU
      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
     22 define amdgpu_kernel void @no_vcc_no_flat() {
     23 entry:
     24   call void asm sideeffect "", "~{s7}"()
     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
     36 define amdgpu_kernel void @vcc_no_flat() {
     37 entry:
     38   call void asm sideeffect "", "~{s7},~{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: 12
     48 ; VI-NOXNACK: ; NumSgprs: 14
     49 ; VI-XNACK: ; NumSgprs: 14
     50 ; HSA-CI: ; NumSgprs: 12
     51 ; HSA-VI-NOXNACK: ; NumSgprs: 14
     52 ; HSA-VI-XNACK: ; NumSgprs: 14
     53 define amdgpu_kernel void @no_vcc_flat() {
     54 entry:
     55   call void asm sideeffect "", "~{s7},~{flat_scratch}"()
     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: 12
     64 ; VI-NOXNACK: ; NumSgprs: 14
     65 ; VI-XNACK: ; NumSgprs: 14
     66 ; HSA-CI: ; NumSgprs: 12
     67 ; HSA-VI-NOXNACK: ; NumSgprs: 14
     68 ; HSA-VI-XNACK: ; NumSgprs: 14
     69 define amdgpu_kernel void @vcc_flat() {
     70 entry:
     71   call void asm sideeffect "", "~{s7},~{vcc},~{flat_scratch}"()
     72   ret void
     73 }
     74 
     75 ; Make sure used SGPR count for flat_scr is correct when there is no
     76 ; scratch usage and implicit flat uses.
     77 
     78 ; GCN-LABEL: {{^}}use_flat_scr:
     79 ; CI: NumSgprs: 4
     80 ; VI-NOXNACK: NumSgprs: 6
     81 ; VI-XNACK: NumSgprs: 6
     82 define amdgpu_kernel void @use_flat_scr() #0 {
     83 entry:
     84   call void asm sideeffect "; clobber ", "~{flat_scratch}"()
     85   ret void
     86 }
     87 
     88 ; GCN-LABEL: {{^}}use_flat_scr_lo:
     89 ; CI: NumSgprs: 4
     90 ; VI-NOXNACK: NumSgprs: 6
     91 ; VI-XNACK: NumSgprs: 6
     92 define amdgpu_kernel void @use_flat_scr_lo() #0 {
     93 entry:
     94   call void asm sideeffect "; clobber ", "~{flat_scratch_lo}"()
     95   ret void
     96 }
     97 
     98 ; GCN-LABEL: {{^}}use_flat_scr_hi:
     99 ; CI: NumSgprs: 4
    100 ; VI-NOXNACK: NumSgprs: 6
    101 ; VI-XNACK: NumSgprs: 6
    102 define amdgpu_kernel void @use_flat_scr_hi() #0 {
    103 entry:
    104   call void asm sideeffect "; clobber ", "~{flat_scratch_hi}"()
    105   ret void
    106 }
    107 
    108 attributes #0 = { nounwind }
    109