Home | History | Annotate | Download | only in Hexagon
      1 # RUN: llc -march=hexagon -verify-machineinstrs -run-pass branch-folder -o - %s | FileCheck %s
      2 
      3 # CHECK-LABEL: name: fred
      4 
      5 --- |
      6   define void @fred() { ret void }
      7 
      8 ...
      9 ---
     10 
     11 name: fred
     12 tracksRegLiveness: true
     13 
     14 body: |
     15   bb.0:
     16     liveins: $p0:0x1, $p2, $r0
     17     successors: %bb.1, %bb.2
     18         J2_jumpt killed $p2, %bb.1, implicit-def $pc
     19         J2_jump %bb.2, implicit-def $pc
     20 
     21   bb.1:
     22     liveins: $p0:0x1, $r0, $r19
     23     successors: %bb.3
     24         $r2 = A2_tfrsi 4
     25         $r1 = COPY $r19
     26         $r0 = S2_asl_r_r killed $r0, killed $r2
     27         $r0 = A2_asrh killed $r0
     28         J2_jump %bb.3, implicit-def $pc
     29 
     30   bb.2:
     31     liveins: $p0:0x1, $r0, $r18
     32     successors: %bb.3
     33         $r2 = A2_tfrsi 5
     34         $r1 = L2_loadrh_io $r18, 0
     35         $r0 = S2_asl_r_r killed $r0, killed $r2
     36         $r0 = A2_asrh killed $r0
     37 
     38   bb.3:
     39     ; A live-in register without subregs, but with a lane mask that is not ~0
     40     ; is not recognized by LivePhysRegs. Branch folding exposes this problem
     41     ; (through tail merging).
     42     ;
     43     ; CHECK: bb.3:
     44     ; CHECK: liveins:{{.*}}$p0
     45     ; CHECK:   $r0 = S2_asl_r_r killed $r0, killed $r2
     46     ; CHECK:   $r0 = A2_asrh killed $r0
     47     ; CHECK:   $r0 = C2_cmoveit killed $p0, 1
     48     ; CHECK:   J2_jumpr $r31, implicit-def $pc, implicit $r0
     49     ;
     50     liveins: $p0:0x1
     51         $r0 = C2_cmoveit killed $p0, 1
     52         J2_jumpr $r31, implicit-def $pc, implicit $r0
     53 ...
     54 
     55 
     56