Home | History | Annotate | Download | only in Hexagon
      1 # RUN: llc -march=hexagon -run-pass if-converter -o - %s -verify-machineinstrs | FileCheck %s
      2 
      3 # CHECK: $r26 = A2_tfr $r1
      4 # CHECK: S2_pstorerhf_io undef $p0, undef $r0, 0, killed $r1
      5 
      6 ---
      7 name:            foo
      8 tracksRegLiveness: true
      9 body: |
     10   bb.0:
     11     successors: %bb.1, %bb.2
     12     liveins: $r0, $r1
     13       J2_jumpf undef $p0, %bb.2, implicit-def $pc
     14 
     15   bb.1:
     16     successors: %bb.3
     17     liveins: $r1
     18       ; This <kill> flag should be cleared. It didn't use to be, because
     19       ; this instruction is treated as a duplicate of the corresponding
     20       ; instruction from the "false" block bb.2. Clearing of the <kill>
     21       ; flags was limited to the non-common part of the "true" block.
     22       $r26 = A2_tfr killed $r1
     23       J2_jump %bb.3, implicit-def $pc
     24 
     25   bb.2:
     26     successors: %bb.3
     27     liveins: $r1
     28       $r26 = A2_tfr $r1
     29       S2_storerh_io undef $r0, 0, killed $r1
     30       J2_jump %bb.3, implicit-def $pc
     31 
     32   bb.3:
     33     liveins: $r26
     34 ...
     35