• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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---
7name:            foo
8tracksRegLiveness: true
9body: |
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