[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / expand-isel-liveness.mir
blob262e71d48fc09b5880b00cc0fc7e8a7dd91110c6
1 # RUN: llc -mtriple powerpc64-unknown-linux-gnu -run-pass=ppc-expand-isel -o \
2 # RUN:   - %s -verify-machineinstrs | FileCheck %s
4 ---
5 name:           expand_isel_liveness1
6 tracksRegLiveness: true
7 registers:       []
8 liveins:
9   - { reg: '$x3', virtual-reg: '' }
10   - { reg: '$x4', virtual-reg: '' }
11   - { reg: '$x5', virtual-reg: '' }
12   - { reg: '$x6', virtual-reg: '' }
13 body:             |
14   bb.0:
15     liveins: $x3, $x4, $x5, $x6
16   
17     renamable $x8 = MULLD renamable $x5, renamable $x4
18     renamable $cr5 = CMPDI renamable $x3, 0
19     dead renamable $x9 = MULHDU_rec renamable $x3, renamable $x6, implicit-def $cr0
20     renamable $x3 = MULLD killed renamable $x3, renamable $x6
21     $cr1 = MCRF killed $cr0
22     renamable $x3 = ADD8 killed renamable $x3, killed renamable $x8
23     renamable $cr0 = CMPDI renamable $x5, 0
24     renamable $cr5lt = CRNOR killed renamable $cr0eq, killed renamable $cr5eq, implicit $cr5, implicit $cr0
25     renamable $cr0 = CMPLDI renamable $x3, 0
26     renamable $x8 = MULHDU renamable $x4, renamable $x6
27     renamable $x3 = ADD8 renamable $x8, killed renamable $x3
28     renamable $cr6 = CMPLD renamable $x3, killed renamable $x8
29     renamable $cr5gt = CRANDC killed renamable $cr6lt, killed renamable $cr0eq, implicit $cr0, implicit $cr6
30     renamable $cr5lt = CRORC killed renamable $cr5lt, killed renamable $cr1eq, implicit $cr1
31     renamable $x7 = LI8 1
32     dead renamable $x5 = MULHDU_rec killed renamable $x5, renamable $x4, implicit-def $cr0
33     renamable $cr5lt = CRORC killed renamable $cr5lt, killed renamable $cr0eq, implicit $cr0
34     renamable $cr5lt = CRNOR killed renamable $cr5lt, killed renamable $cr5gt
35     renamable $x4 = MULLD killed renamable $x4, killed renamable $x6
36     renamable $x5 = ISEL8 $zero8, killed renamable $x7, killed renamable $cr5lt
37     BLR8 implicit $lr8, implicit $rm, implicit killed $x3, implicit killed $x4, implicit killed $x5
39   ; CHECK-LABEL: name: expand_isel_liveness1
40   ; CHECK: bb.1:
41   ; CHECK:   liveins: $x3, $x4, $x7
42   ; CHECK:   renamable $x5 = ORI8 killed renamable $x7, 0
43   ; CHECK:   B %bb.3
44   ; CHECK: bb.2:
45   ; CHECK:   liveins: $x3, $x4
46   ; CHECK:   renamable $x5 = ADDI8 $zero8, 0
47   ; CHECK: bb.3:
48   ; CHECK:   liveins: $x3, $x4, $x5
49   ; CHECK:   BLR8 implicit $lr8, implicit $rm, implicit killed $x3, implicit killed $x4, implicit killed $x5
50 ...
52 ---
53 name:            expand_isel_liveness2
54 tracksRegLiveness: true
55 liveins:
56   - { reg: '$r0' }
57   - { reg: '$r3' }
58 body:             |
59   bb.0.entry:
60     liveins: $r0, $r3
62     $r5 = ADDI $r3, 1
63     $cr0 = CMPWI $r3, 0
64     $r3 = ISEL $zero, killed $r0, killed $cr0gt
66   ; CHECK-LABEL: name: expand_isel_liveness2
67   ; CHECK: bb.0.entry:
68   ; CHECK:   liveins: $r0, $r3
69   ; CHECK:   $r5 = ADDI $r3, 1
70   ; CHECK:   $cr0 = CMPWI $r3, 0
71   ; CHECK:   BC killed $cr0gt, %bb.2
72   ; CHECK: bb.1.entry:
73   ; CHECK:   liveins: $r0
74   ; CHECK:   $r3 = ORI killed $r0, 0
75   ; CHECK:   B %bb.3
76   ; CHECK: bb.2.entry:
77   ; CHECK-NOT:   liveins: $zero
78   ; CHECK:   $r3 = ADDI $zero, 0
79 ...