brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · 0e94592 Raw
174 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc %s -o - -mtriple=powerpc-unknown-unknown -run-pass=machine-cse -verify-machineinstrs | FileCheck %s3# RUN: llc %s -o - -mtriple=powerpc-unknown-unknown -passes=machine-cse | FileCheck %s4--- |5  define void @can_pre() {6  entry:7    br label %for.body8 9  for.body:10    br i1 undef, label %if.then, label %if.else11 12  if.then:13    br label %if.end14 15  if.else:16    br label %if.end17 18  if.end:19    br label %for.body20  }21 22  define void @cannot_pre() {23  entry:24    br label %for.body25 26  for.body:27    br i1 undef, label %if.then, label %if.else28 29  if.then:30    br label %if.end31 32  if.else:33    br label %if.end34 35  if.end:36    br label %for.body37  }38...39---40name: can_pre41registers:42  - { id: 0, class: f8rc, preferred-register: '' }43  - { id: 1, class: f8rc, preferred-register: '' }44  - { id: 2, class: gprc, preferred-register: '' }45  - { id: 3, class: gprc, preferred-register: '' }46  - { id: 4, class: f8rc, preferred-register: '' }47  - { id: 5, class: f8rc, preferred-register: '' }48liveins:49  - { reg: '$r1', virtual-reg: '%2' }50  - { reg: '$r2', virtual-reg: '%3' }51  - { reg: '$f1', virtual-reg: '%4' }52  - { reg: '$f2', virtual-reg: '%5' }53body:             |54  ; CHECK-LABEL: name: can_pre55  ; CHECK: bb.0.for.body:56  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)57  ; CHECK-NEXT:   liveins: $r1, $r2, $f1, $f258  ; CHECK-NEXT: {{  $}}59  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:f8rc = COPY $f260  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:f8rc = COPY $f161  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gprc = COPY $r262  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gprc = COPY $r163  ; CHECK-NEXT:   $cr0 = CMPLWI [[COPY3]], 064  ; CHECK-NEXT:   %6:f8rc = nofpexcept FDIV [[COPY1]], [[COPY]], implicit $rm65  ; CHECK-NEXT:   BCC 44, $cr0, %bb.166  ; CHECK-NEXT:   B %bb.267  ; CHECK-NEXT: {{  $}}68  ; CHECK-NEXT: bb.1.if.then:69  ; CHECK-NEXT:   successors: %bb.3(0x80000000)70  ; CHECK-NEXT: {{  $}}71  ; CHECK-NEXT:   B %bb.372  ; CHECK-NEXT: {{  $}}73  ; CHECK-NEXT: bb.2.if.else:74  ; CHECK-NEXT:   successors: %bb.3(0x80000000)75  ; CHECK-NEXT: {{  $}}76  ; CHECK-NEXT: bb.3.if.end:77  ; CHECK-NEXT:   BLR implicit $lr, implicit $rm78  bb.0.for.body:79    successors: %bb.1(0x40000000), %bb.2(0x40000000)80    liveins: $r1, $r2, $f1, $f281 82    %5:f8rc = COPY $f283    %4:f8rc = COPY $f184    %3:gprc = COPY $r285    %2:gprc = COPY $r186    $cr0 = CMPLWI %2, 087    BCC 44, $cr0, %bb.188    B %bb.289 90  bb.1.if.then:91    successors: %bb.3(0x80000000)92 93    %0:f8rc = nofpexcept FDIV %4, %5, implicit $rm94    B %bb.395 96  bb.2.if.else:97    successors: %bb.3(0x80000000)98 99    %1:f8rc = nofpexcept FDIV %4, %5, implicit $rm100 101  bb.3.if.end:102    BLR implicit $lr, implicit $rm103...104---105name: cannot_pre106registers: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: '' }114liveins:115  - { reg: '$r1', virtual-reg: '%2' }116  - { reg: '$r2', virtual-reg: '%3' }117  - { reg: '$f1', virtual-reg: '%4' }118  - { reg: '$f2', virtual-reg: '%5' }119body:             |120  ; CHECK-LABEL: name: cannot_pre121  ; CHECK: bb.0.for.body:122  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)123  ; CHECK-NEXT:   liveins: $r1, $r2, $f1, $f2124  ; CHECK-NEXT: {{  $}}125  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:f8rc = COPY $f2126  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:f8rc = COPY $f1127  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gprc = COPY $r2128  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:gprc = COPY $r1129  ; CHECK-NEXT:   $cr0 = CMPLWI [[COPY3]], 0130  ; CHECK-NEXT:   BCC 44, $cr0, %bb.1131  ; CHECK-NEXT:   B %bb.2132  ; 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 $rm137  ; CHECK-NEXT:   %0:f8rc = nofpexcept FDIV [[COPY1]], [[COPY]], implicit $rm138  ; CHECK-NEXT:   B %bb.3139  ; 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 $rm144  ; CHECK-NEXT: {{  $}}145  ; CHECK-NEXT: bb.3.if.end:146  ; CHECK-NEXT:   BLR implicit $lr, implicit $rm147  bb.0.for.body:148    successors: %bb.1(0x40000000), %bb.2(0x40000000)149    liveins: $r1, $r2, $f1, $f2150 151    %5:f8rc = COPY $f2152    %4:f8rc = COPY $f1153    %3:gprc = COPY $r2154    %2:gprc = COPY $r1155    $cr0 = CMPLWI %2, 0156    BCC 44, $cr0, %bb.1157    B %bb.2158 159  bb.1.if.then:160    successors: %bb.3(0x80000000)161 162    %6:f8rc = SETRND %3, implicit-def $rm, implicit $rm163    %0:f8rc = nofpexcept FDIV %4, %5, implicit $rm164    B %bb.3165 166  bb.2.if.else:167    successors: %bb.3(0x80000000)168 169    %1:f8rc = nofpexcept FDIV %4, %5, implicit $rm170 171  bb.3.if.end:172    BLR implicit $lr, implicit $rm173...174