Home | History | Annotate | Download | only in AMDGPU
      1 # RUN: llc -march=amdgcn -run-pass simple-register-coalescing -o - %s | FileCheck %s
      2 
      3 # Check that coalescer does not create wider register tuple than in source
      4 
      5 # CHECK:  - { id: 2, class: vreg_64, preferred-register: '' }
      6 # CHECK:  - { id: 3, class: vreg_64, preferred-register: '' }
      7 # CHECK:  - { id: 4, class: vreg_64, preferred-register: '' }
      8 # CHECK:  - { id: 5, class: vreg_96, preferred-register: '' }
      9 # CHECK:  - { id: 6, class: vreg_96, preferred-register: '' }
     10 # CHECK:  - { id: 7, class: vreg_128, preferred-register: '' }
     11 # CHECK:  - { id: 8, class: vreg_128, preferred-register: '' }
     12 # No more registers shall be defined
     13 # CHECK-NEXT: liveins:
     14 # CHECK:    FLAT_STORE_DWORDX2 $vgpr0_vgpr1, %4,
     15 # CHECK:    FLAT_STORE_DWORDX3 $vgpr0_vgpr1, %6,
     16 
     17 ---
     18 name:            main
     19 alignment:       0
     20 exposesReturnsTwice: false
     21 legalized:       false
     22 regBankSelected: false
     23 selected:        false
     24 tracksRegLiveness: true
     25 registers:
     26   - { id: 1, class: sreg_32_xm0, preferred-register: '%1' }
     27   - { id: 2, class: vreg_64, preferred-register: '%2' }
     28   - { id: 3, class: vreg_64 }
     29   - { id: 4, class: vreg_64 }
     30   - { id: 5, class: vreg_64 }
     31   - { id: 6, class: vreg_96 }
     32   - { id: 7, class: vreg_96 }
     33   - { id: 8, class: vreg_128 }
     34   - { id: 9, class: vreg_128 }
     35 liveins:
     36   - { reg: '$sgpr6', virtual-reg: '%1' }
     37 frameInfo:
     38   isFrameAddressTaken: false
     39   isReturnAddressTaken: false
     40   hasStackMap:     false
     41   hasPatchPoint:   false
     42   stackSize:       0
     43   offsetAdjustment: 0
     44   maxAlignment:    0
     45   adjustsStack:    false
     46   hasCalls:        false
     47   maxCallFrameSize: 0
     48   hasOpaqueSPAdjustment: false
     49   hasVAStart:      false
     50   hasMustTailInVarArgFunc: false
     51 body:             |
     52   bb.0.entry:
     53     liveins: $sgpr0, $vgpr0_vgpr1
     54 
     55     %3 = IMPLICIT_DEF
     56     undef %4.sub0 = COPY $sgpr0
     57     %4.sub1 = COPY %3.sub0
     58     undef %5.sub0 = COPY %4.sub1
     59     %5.sub1 = COPY %4.sub0
     60     FLAT_STORE_DWORDX2 $vgpr0_vgpr1, killed %5, 0, 0, 0, implicit $exec, implicit $flat_scr
     61 
     62     %6 = IMPLICIT_DEF
     63     undef %7.sub0_sub1 = COPY %6
     64     %7.sub2 = COPY %3.sub0
     65     FLAT_STORE_DWORDX3 $vgpr0_vgpr1, killed %7, 0, 0, 0, implicit $exec, implicit $flat_scr
     66 
     67     %8 = IMPLICIT_DEF
     68     undef %9.sub0_sub1_sub2 = COPY %8
     69     %9.sub3 = COPY %3.sub0
     70     FLAT_STORE_DWORDX4 $vgpr0_vgpr1, killed %9, 0, 0, 0, implicit $exec, implicit $flat_scr
     71 ...
     72