Home | History | Annotate | Download | only in Hexagon
      1 # RUN: llc -march=hexagon -run-pass=simple-register-coalescing -o - %s | FileCheck %s
      2 
      3 # Make sure that the coalescer does not create a full definition with
      4 # an undef flag on the destination. This used to happen when rematerializing
      5 # a double register and coalescing a smaller reg into a subreg of it.
      6 
      7 # CHECK-NOT: undef %[0-9]+:doubleregs = A2_tfrpi 1
      8 
      9 ---
     10 name: fred
     11 tracksRegLiveness: true
     12 body: |
     13 
     14   bb.0:
     15     successors: %bb.1(0x80000000); %bb.1(200.00%)
     16 
     17     %18:doubleregs = A2_tfrpi 1
     18     %23:intregs = IMPLICIT_DEF
     19     %24:doubleregs = IMPLICIT_DEF
     20 
     21   bb.1:
     22     successors: %bb.1(0x80000000); %bb.1(200.00%)
     23 
     24     %1:doubleregs = COPY %24:doubleregs
     25     %0:intregs = COPY %23:intregs
     26     %13:intregs = COPY %18.isub_lo:doubleregs
     27     %13:intregs = S2_asl_i_r_or %13:intregs, %0:intregs, 1
     28     %15:intregs = S2_extractu %0:intregs, 1, 31
     29     undef %17.isub_lo:doubleregs = COPY %13:intregs
     30     %17.isub_hi:doubleregs = COPY %15:intregs
     31     %2:doubleregs = A2_addp %17:doubleregs, %1:doubleregs
     32     %3:intregs = A2_addi %0:intregs, -1
     33     %23:intregs = COPY %3:intregs
     34     %24:doubleregs = COPY %2:doubleregs
     35     J2_jump %bb.1, implicit-def dead $pc
     36 
     37 ...
     38