[NFC][Py Reformat] Reformat python files in llvm
[llvm-project.git] / llvm / test / CodeGen / PowerPC / machine-cse-rm-pre.mir
blob36484be012362c2b8af30abf6f9765acc2c23a32
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc %s -o - -mtriple=powerpc-unknown-unknown -run-pass=machine-cse -verify-machineinstrs | FileCheck %s
3 --- |
4   define void @can_pre() {
5   entry:
6     br label %for.body
8   for.body:
9     br i1 undef, label %if.then, label %if.else
11   if.then:
12     br label %if.end
14   if.else:
15     br label %if.end
17   if.end:
18     br label %for.body
19   }
21   define void @cannot_pre() {
22   entry:
23     br label %for.body
25   for.body:
26     br i1 undef, label %if.then, label %if.else
28   if.then:
29     br label %if.end
31   if.else:
32     br label %if.end
34   if.end:
35     br label %for.body
36   }
37 ...
38 ---
39 name: can_pre
40 registers:
41   - { id: 0, class: f8rc, preferred-register: '' }
42   - { id: 1, class: f8rc, preferred-register: '' }
43   - { id: 2, class: gprc, preferred-register: '' }
44   - { id: 3, class: gprc, preferred-register: '' }
45   - { id: 4, class: f8rc, preferred-register: '' }
46   - { id: 5, class: f8rc, preferred-register: '' }
47 liveins:
48   - { reg: '$r1', virtual-reg: '%2' }
49   - { reg: '$r2', virtual-reg: '%3' }
50   - { reg: '$f1', virtual-reg: '%4' }
51   - { reg: '$f2', virtual-reg: '%5' }
52 body:             |
53   ; CHECK-LABEL: name: can_pre
54   ; CHECK: bb.0.for.body:
55   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
56   ; CHECK-NEXT:   liveins: $r1, $r2, $f1, $f2
57   ; CHECK-NEXT: {{  $}}
58   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:f8rc = COPY $f2
59   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:f8rc = COPY $f1
60   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gprc = COPY $r2
61   ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gprc = COPY $r1
62   ; CHECK-NEXT:   $cr0 = CMPLWI [[COPY3]], 0
63   ; CHECK-NEXT:   %6:f8rc = nofpexcept FDIV [[COPY1]], [[COPY]], implicit $rm
64   ; CHECK-NEXT:   BCC 44, $cr0, %bb.1
65   ; CHECK-NEXT:   B %bb.2
66   ; CHECK-NEXT: {{  $}}
67   ; CHECK-NEXT: bb.1.if.then:
68   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
69   ; CHECK-NEXT: {{  $}}
70   ; CHECK-NEXT:   B %bb.3
71   ; CHECK-NEXT: {{  $}}
72   ; CHECK-NEXT: bb.2.if.else:
73   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
74   ; CHECK-NEXT: {{  $}}
75   ; CHECK-NEXT: {{  $}}
76   ; CHECK-NEXT: bb.3.if.end:
77   ; CHECK-NEXT:   BLR implicit $lr, implicit $rm
78   bb.0.for.body:
79     successors: %bb.1(0x40000000), %bb.2(0x40000000)
80     liveins: $r1, $r2, $f1, $f2
82     %5:f8rc = COPY $f2
83     %4:f8rc = COPY $f1
84     %3:gprc = COPY $r2
85     %2:gprc = COPY $r1
86     $cr0 = CMPLWI %2, 0
87     BCC 44, $cr0, %bb.1
88     B %bb.2
90   bb.1.if.then:
91     successors: %bb.3(0x80000000)
93     %0:f8rc = nofpexcept FDIV %4, %5, implicit $rm
94     B %bb.3
96   bb.2.if.else:
97     successors: %bb.3(0x80000000)
99     %1:f8rc = nofpexcept FDIV %4, %5, implicit $rm
101   bb.3.if.end:
102     BLR implicit $lr, implicit $rm
105 name: cannot_pre
106 registers:
107   - { id: 0, class: f8rc, preferred-register: '' }
108   - { id: 1, class: f8rc, preferred-register: '' }
109   - { id: 2, class: gprc, preferred-register: '' }
110   - { id: 3, class: gprc, preferred-register: '' }
111   - { id: 4, class: f8rc, preferred-register: '' }
112   - { id: 5, class: f8rc, preferred-register: '' }
113   - { id: 6, class: f8rc, preferred-register: '' }
114 liveins:
115   - { reg: '$r1', virtual-reg: '%2' }
116   - { reg: '$r2', virtual-reg: '%3' }
117   - { reg: '$f1', virtual-reg: '%4' }
118   - { reg: '$f2', virtual-reg: '%5' }
119 body:             |
120   ; CHECK-LABEL: name: cannot_pre
121   ; CHECK: bb.0.for.body:
122   ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
123   ; CHECK-NEXT:   liveins: $r1, $r2, $f1, $f2
124   ; CHECK-NEXT: {{  $}}
125   ; CHECK-NEXT:   [[COPY:%[0-9]+]]:f8rc = COPY $f2
126   ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:f8rc = COPY $f1
127   ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gprc = COPY $r2
128   ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gprc = COPY $r1
129   ; CHECK-NEXT:   $cr0 = CMPLWI [[COPY3]], 0
130   ; CHECK-NEXT:   BCC 44, $cr0, %bb.1
131   ; CHECK-NEXT:   B %bb.2
132   ; CHECK-NEXT: {{  $}}
133   ; CHECK-NEXT: bb.1.if.then:
134   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
135   ; CHECK-NEXT: {{  $}}
136   ; CHECK-NEXT:   [[SETRND:%[0-9]+]]:f8rc = SETRND [[COPY2]], implicit-def $rm, implicit $rm
137   ; CHECK-NEXT:   %0:f8rc = nofpexcept FDIV [[COPY1]], [[COPY]], implicit $rm
138   ; CHECK-NEXT:   B %bb.3
139   ; CHECK-NEXT: {{  $}}
140   ; CHECK-NEXT: bb.2.if.else:
141   ; CHECK-NEXT:   successors: %bb.3(0x80000000)
142   ; CHECK-NEXT: {{  $}}
143   ; CHECK-NEXT:   %1:f8rc = nofpexcept FDIV [[COPY1]], [[COPY]], implicit $rm
144   ; CHECK-NEXT: {{  $}}
145   ; CHECK-NEXT: bb.3.if.end:
146   ; CHECK-NEXT:   BLR implicit $lr, implicit $rm
147   bb.0.for.body:
148     successors: %bb.1(0x40000000), %bb.2(0x40000000)
149     liveins: $r1, $r2, $f1, $f2
151     %5:f8rc = COPY $f2
152     %4:f8rc = COPY $f1
153     %3:gprc = COPY $r2
154     %2:gprc = COPY $r1
155     $cr0 = CMPLWI %2, 0
156     BCC 44, $cr0, %bb.1
157     B %bb.2
159   bb.1.if.then:
160     successors: %bb.3(0x80000000)
162     %6:f8rc = SETRND %3, implicit-def $rm, implicit $rm
163     %0:f8rc = nofpexcept FDIV %4, %5, implicit $rm
164     B %bb.3
166   bb.2.if.else:
167     successors: %bb.3(0x80000000)
169     %1:f8rc = nofpexcept FDIV %4, %5, implicit $rm
171   bb.3.if.end:
172     BLR implicit $lr, implicit $rm