brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.2 KiB · aaacf1d Raw
217 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -run-pass=amdgpu-prepare-agpr-alloc -o - %s | FileCheck -check-prefixes=HAS-AGPR,GFX90A %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=amdgpu-prepare-agpr-alloc -o - %s | FileCheck -check-prefixes=HAS-AGPR,GFX908 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx906 -passes=amdgpu-prepare-agpr-alloc -o - %s | FileCheck -check-prefix=NO-AGPR %s5 6--- |7  define void @func() {8    ret void9  }10 11  ; Attribute is ignored for gfx90a12  define void @no_agprs() "amdgpu-agpr-alloc"="0,0" {13    ret void14  }15 16  define void @func64() {17    ret void18  }19 20  define void @func64_no_agprs() "amdgpu-agpr-alloc"="0,0" {21    ret void22  }23 24...25---26name: func27tracksRegLiveness: true28stack:29  - { id: 0, size: 4 }30body:             |31  ; HAS-AGPR-LABEL: name: func32  ; HAS-AGPR: bb.0:33  ; HAS-AGPR-NEXT:   successors: %bb.1(0x80000000)34  ; HAS-AGPR-NEXT:   liveins: $vgpr035  ; HAS-AGPR-NEXT: {{  $}}36  ; HAS-AGPR-NEXT:   [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 $vgpr0, implicit $exec37  ; HAS-AGPR-NEXT:   [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $exec38  ; HAS-AGPR-NEXT:   [[AV_MOV_:%[0-9]+]]:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 1, implicit $exec39  ; HAS-AGPR-NEXT:   [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65, implicit $exec40  ; HAS-AGPR-NEXT:   [[V_MOV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec41  ; HAS-AGPR-NEXT:   [[AV_MOV_1:%[0-9]+]]:agpr_32 = AV_MOV_B32_IMM_PSEUDO 2, implicit $exec42  ; HAS-AGPR-NEXT:   [[AV_MOV_2:%[0-9]+]]:agpr_32 = AV_MOV_B32_IMM_PSEUDO 6, implicit $exec43  ; HAS-AGPR-NEXT: {{  $}}44  ; HAS-AGPR-NEXT: bb.1:45  ; HAS-AGPR-NEXT:   [[AV_MOV_3:%[0-9]+]]:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 3, implicit $exec46  ;47  ; NO-AGPR-LABEL: name: func48  ; NO-AGPR: bb.0:49  ; NO-AGPR-NEXT:   successors: %bb.1(0x80000000)50  ; NO-AGPR-NEXT:   liveins: $vgpr051  ; NO-AGPR-NEXT: {{  $}}52  ; NO-AGPR-NEXT:   [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 $vgpr0, implicit $exec53  ; NO-AGPR-NEXT:   [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $exec54  ; NO-AGPR-NEXT:   [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec55  ; NO-AGPR-NEXT:   [[V_MOV_B32_e32_2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65, implicit $exec56  ; NO-AGPR-NEXT:   [[V_MOV_B32_e32_3:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec57  ; NO-AGPR-NEXT:   [[V_ACCVGPR_WRITE_B32_e64_1:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec58  ; NO-AGPR-NEXT:   [[V_ACCVGPR_WRITE_B32_e64_2:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 6, implicit $exec59  ; NO-AGPR-NEXT: {{  $}}60  ; NO-AGPR-NEXT: bb.1:61  ; NO-AGPR-NEXT:   [[V_MOV_B32_e32_4:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 3, implicit $exec62  bb.0:63    liveins: $vgpr064    %0:vgpr_32 = V_MOV_B32_e32 $vgpr0, implicit $exec65    %1:agpr_32 = V_ACCVGPR_WRITE_B32_e64 $vgpr0, implicit $exec66    %2:vgpr_32 = V_MOV_B32_e32 1, implicit $exec67    %3:vgpr_32 = V_MOV_B32_e32 65, implicit $exec68    %4:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec69    %5:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec70    %6:agpr_32 = V_ACCVGPR_WRITE_B32_e64 6, implicit $exec71 72  bb.1:73    %7:vgpr_32 = V_MOV_B32_e32 3, implicit $exec74 75...76 77---78name: no_agprs79tracksRegLiveness: true80body:             |81  bb.0:82    liveins: $vgpr083    ; GFX90A-LABEL: name: no_agprs84    ; GFX90A: liveins: $vgpr085    ; GFX90A-NEXT: {{  $}}86    ; GFX90A-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec87    ; GFX90A-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec88    ;89    ; GFX908-LABEL: name: no_agprs90    ; GFX908: liveins: $vgpr091    ; GFX908-NEXT: {{  $}}92    ; GFX908-NEXT: [[AV_MOV_:%[0-9]+]]:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 1, implicit $exec93    ; GFX908-NEXT: [[AV_MOV_1:%[0-9]+]]:agpr_32 = AV_MOV_B32_IMM_PSEUDO 2, implicit $exec94    ;95    ; NO-AGPR-LABEL: name: no_agprs96    ; NO-AGPR: liveins: $vgpr097    ; NO-AGPR-NEXT: {{  $}}98    ; NO-AGPR-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1, implicit $exec99    ; NO-AGPR-NEXT: [[V_ACCVGPR_WRITE_B32_e64_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec100    %0:vgpr_32 = V_MOV_B32_e32 1, implicit $exec101    %1:agpr_32 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec102 103...104 105---106name: func64107tracksRegLiveness: true108stack:109  - { id: 0, size: 4 }110body:             |111  ; HAS-AGPR-LABEL: name: func64112  ; HAS-AGPR: bb.0:113  ; HAS-AGPR-NEXT:   successors: %bb.1(0x80000000)114  ; HAS-AGPR-NEXT:   liveins: $vgpr0_vgpr1115  ; HAS-AGPR-NEXT: {{  $}}116  ; HAS-AGPR-NEXT:   [[V_MOV_B64_e64_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 $vgpr0_vgpr1, implicit $exec117  ; HAS-AGPR-NEXT:   [[AV_MOV_:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 54, implicit $exec118  ; HAS-AGPR-NEXT:   [[AV_MOV_1:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 1, implicit $exec119  ; HAS-AGPR-NEXT:   [[AV_MOV_2:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 64, implicit $exec120  ; HAS-AGPR-NEXT:   [[V_MOV_B64_e64_1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 %stack.0, implicit $exec121  ; HAS-AGPR-NEXT:   [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 65, implicit $exec122  ; HAS-AGPR-NEXT:   [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 279172874240, implicit $exec123  ; HAS-AGPR-NEXT:   [[V_MOV_B2:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 279172874305, implicit $exec124  ; HAS-AGPR-NEXT:   [[V_MOV_B3:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec125  ; HAS-AGPR-NEXT:   [[V_MOV_B4:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO -9223372036854775808, implicit $exec126  ; HAS-AGPR-NEXT:   [[AV_MOV_3:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 1042479491, implicit $exec127  ; HAS-AGPR-NEXT:   [[AV_MOV_4:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 4477415320595726336, implicit $exec128  ; HAS-AGPR-NEXT:   [[V_MOV_B5:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO $vgpr0_vgpr1, implicit $exec129  ; HAS-AGPR-NEXT:   [[V_MOV_B6:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO %stack.0, implicit $exec130  ; HAS-AGPR-NEXT: {{  $}}131  ; HAS-AGPR-NEXT: bb.1:132  ; HAS-AGPR-NEXT:   [[AV_MOV_5:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 3, implicit $exec133  ;134  ; NO-AGPR-LABEL: name: func64135  ; NO-AGPR: bb.0:136  ; NO-AGPR-NEXT:   successors: %bb.1(0x80000000)137  ; NO-AGPR-NEXT:   liveins: $vgpr0_vgpr1138  ; NO-AGPR-NEXT: {{  $}}139  ; NO-AGPR-NEXT:   [[V_MOV_B64_e64_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 $vgpr0_vgpr1, implicit $exec140  ; NO-AGPR-NEXT:   [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 54, implicit $exec141  ; NO-AGPR-NEXT:   [[V_MOV_B64_e64_1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 1, implicit $exec142  ; NO-AGPR-NEXT:   [[V_MOV_B64_e64_2:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 64, implicit $exec143  ; NO-AGPR-NEXT:   [[V_MOV_B64_e64_3:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 %stack.0, implicit $exec144  ; NO-AGPR-NEXT:   [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 65, implicit $exec145  ; NO-AGPR-NEXT:   [[V_MOV_B2:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 279172874240, implicit $exec146  ; NO-AGPR-NEXT:   [[V_MOV_B3:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 279172874305, implicit $exec147  ; NO-AGPR-NEXT:   [[V_MOV_B4:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec148  ; NO-AGPR-NEXT:   [[V_MOV_B5:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO -9223372036854775808, implicit $exec149  ; NO-AGPR-NEXT:   [[V_MOV_B6:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1042479491, implicit $exec150  ; NO-AGPR-NEXT:   [[V_MOV_B7:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4477415320595726336, implicit $exec151  ; NO-AGPR-NEXT:   [[V_MOV_B8:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO $vgpr0_vgpr1, implicit $exec152  ; NO-AGPR-NEXT:   [[V_MOV_B9:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO %stack.0, implicit $exec153  ; NO-AGPR-NEXT: {{  $}}154  ; NO-AGPR-NEXT: bb.1:155  ; NO-AGPR-NEXT:   [[V_MOV_B64_e64_4:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 3, implicit $exec156  bb.0:157    liveins: $vgpr0_vgpr1158    %0:vreg_64_align2 = V_MOV_B64_e64 $vgpr0_vgpr1, implicit $exec159    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 54, implicit $exec160    %2:vreg_64_align2 = V_MOV_B64_e64 1, implicit $exec161    %3:vreg_64_align2 = V_MOV_B64_e64 64, implicit $exec162    %4:vreg_64_align2 = V_MOV_B64_e64 %stack.0, implicit $exec163    %5:vreg_64_align2 = V_MOV_B64_PSEUDO 65, implicit $exec164    %6:vreg_64_align2 = V_MOV_B64_PSEUDO 279172874240, implicit $exec165    %7:vreg_64_align2 = V_MOV_B64_PSEUDO 279172874305, implicit $exec166    %8:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec167    %9:vreg_64_align2 = V_MOV_B64_PSEUDO 9223372036854775808, implicit $exec168    %10:vreg_64_align2 = V_MOV_B64_PSEUDO 1042479491, implicit $exec169    %11:vreg_64_align2 = V_MOV_B64_PSEUDO 4477415320595726336, implicit $exec170    %12:vreg_64_align2 = V_MOV_B64_PSEUDO $vgpr0_vgpr1, implicit $exec171    %13:vreg_64_align2 = V_MOV_B64_PSEUDO %stack.0, implicit $exec172 173  bb.1:174    %14:vreg_64_align2 = V_MOV_B64_e64 3, implicit $exec175 176...177 178---179name: func64_no_agprs180tracksRegLiveness: true181body:             |182  bb.0:183    liveins: $vgpr0184    ; GFX90A-LABEL: name: func64_no_agprs185    ; GFX90A: liveins: $vgpr0186    ; GFX90A-NEXT: {{  $}}187    ; GFX90A-NEXT: [[V_MOV_B64_e64_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 1, implicit $exec188    ; GFX90A-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec189    ; GFX90A-NEXT: [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO -9223372036854775808, implicit $exec190    ; GFX90A-NEXT: [[V_MOV_B2:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1042479491, implicit $exec191    ; GFX90A-NEXT: [[V_MOV_B3:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4477415320595726336, implicit $exec192    ;193    ; GFX908-LABEL: name: func64_no_agprs194    ; GFX908: liveins: $vgpr0195    ; GFX908-NEXT: {{  $}}196    ; GFX908-NEXT: [[AV_MOV_:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 1, implicit $exec197    ; GFX908-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec198    ; GFX908-NEXT: [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO -9223372036854775808, implicit $exec199    ; GFX908-NEXT: [[AV_MOV_1:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 1042479491, implicit $exec200    ; GFX908-NEXT: [[AV_MOV_2:%[0-9]+]]:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 4477415320595726336, implicit $exec201    ;202    ; NO-AGPR-LABEL: name: func64_no_agprs203    ; NO-AGPR: liveins: $vgpr0204    ; NO-AGPR-NEXT: {{  $}}205    ; NO-AGPR-NEXT: [[V_MOV_B64_e64_:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_e64 1, implicit $exec206    ; NO-AGPR-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec207    ; NO-AGPR-NEXT: [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO -9223372036854775808, implicit $exec208    ; NO-AGPR-NEXT: [[V_MOV_B2:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 1042479491, implicit $exec209    ; NO-AGPR-NEXT: [[V_MOV_B3:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 4477415320595726336, implicit $exec210    %0:vreg_64_align2 = V_MOV_B64_e64 1, implicit $exec211    %1:vreg_64_align2 = V_MOV_B64_PSEUDO 4290672329938, implicit $exec212    %2:vreg_64_align2 = V_MOV_B64_PSEUDO 9223372036854775808, implicit $exec213    %3:vreg_64_align2 = V_MOV_B64_PSEUDO 1042479491, implicit $exec214    %4:vreg_64_align2 = V_MOV_B64_PSEUDO 4477415320595726336, implicit $exec215 216...217