[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / Hexagon / ifcvt-impuse-livein.mir
blob6b7fe9c3905bdf6b8999eeb6d27ba76984b6535d
1 # RUN: llc -march=hexagon -run-pass if-converter %s -o - | FileCheck %s
3 # Make sure that the necessary implicit uses are added to predicated
4 # instructions.
6 # CHECK-LABEL: name: foo
8 --- |
9   define void @foo() {
10     ret void
11   }
12 ...
14 ---
15 name: foo
16 tracksRegLiveness: true
17 body: |
18   bb.0:
19     successors: %bb.1, %bb.2
20     liveins: $r0, $r2, $p1
21         J2_jumpf $p1, %bb.1, implicit-def $pc
22         J2_jump %bb.2, implicit-def $pc
23   bb.1:
24     successors: %bb.3
25     liveins: $r2
26         $r0 = A2_tfrsi 2
27         J2_jump %bb.3, implicit-def $pc
28   bb.2:
29     successors: %bb.3
30     liveins: $r0
31     ; Even though r2 was not live on entry to this block, it was live across
32     ; block bb.1 in the original diamond. After if-conversion, the diamond
33     ; became a single block, and so r2 is now live on entry to the instructions
34     ; originating from bb.2.
35     ; CHECK: $r2 = C2_cmoveit $p1, 1, implicit killed $r2
36         $r2 = A2_tfrsi 1
37   bb.3:
38     liveins: $r0, $r2
39         $r0 = A2_add $r0, $r2
40         J2_jumpr $r31, implicit-def $pc
41 ...