brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · c7a98f8 Raw
223 lines · plain
1# RUN: llc -mtriple powerpc64le-unknown-linux-gnu %s -o - 2>&1 \2# RUN:   -run-pass=livevars,phi-node-elimination -verify-machineinstrs | \3# RUN:   FileCheck %s4# RUN: llc -mtriple powerpc64le-unknown-linux-gnu %s -o - 2>&1 \5# RUN:   --passes='require<live-vars>,phi-node-elimination' -verify-each | \6# RUN:   FileCheck %s7 8--- |9  define float @testfloatslt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) {10  entry:11    %cmp1 = fcmp oeq float %c3, %c412    %cmp3tmp = fcmp oeq float %c1, %c213    %cmp3 = icmp slt i1 %cmp3tmp, %cmp114    %cond = select i1 %cmp3, float %a1, float %a215    ret float %cond16  }17  18  define signext i32 @select-i1-vs-i1(ptr nocapture dereferenceable(8) %p) #0 {19  entry:20    %.pre = load ptr, ptr %p, align 821    br label %loop22  23  loop:                                             ; preds = %loop, %if.then3, %entry24    %0 = phi ptr [ %.pre, %entry ], [ %incdec.ptr4, %if.then3 ], [ %incdec.ptr, %loop ]25    %1 = load i8, ptr %0, align 126    %tobool = icmp eq i8 %1, 027    %incdec.ptr = getelementptr inbounds i8, ptr %0, i64 128    store ptr %incdec.ptr, ptr %p, align 829    %2 = load i8, ptr %incdec.ptr, align 130    %tobool2 = icmp ne i8 %2, 031    %or.cond = and i1 %tobool, %tobool232    br i1 %or.cond, label %if.then3, label %loop33  34  if.then3:                                         ; preds = %loop35    %incdec.ptr4 = getelementptr inbounds i8, ptr %0, i64 236    store ptr %incdec.ptr4, ptr %p, align 837    br label %loop38  }39  40...41---42name:            testfloatslt43tracksRegLiveness: true44registers:45  - { id: 0, class: f4rc, preferred-register: '' }46  - { id: 1, class: f4rc, preferred-register: '' }47  - { id: 2, class: f4rc, preferred-register: '' }48  - { id: 3, class: f4rc, preferred-register: '' }49  - { id: 4, class: f4rc, preferred-register: '' }50  - { id: 5, class: f4rc, preferred-register: '' }51  - { id: 6, class: crrc, preferred-register: '' }52  - { id: 7, class: crbitrc, preferred-register: '' }53  - { id: 8, class: crrc, preferred-register: '' }54  - { id: 9, class: crbitrc, preferred-register: '' }55  - { id: 10, class: crbitrc, preferred-register: '' }56  - { id: 11, class: f4rc, preferred-register: '' }57liveins:58  - { reg: '$f1', virtual-reg: '%0' }59  - { reg: '$f2', virtual-reg: '%1' }60  - { reg: '$f3', virtual-reg: '%2' }61  - { reg: '$f4', virtual-reg: '%3' }62  - { reg: '$f5', virtual-reg: '%4' }63  - { reg: '$f6', virtual-reg: '%5' }64body:             |65  bb.0.entry:66    successors: %bb.2(0x20000000), %bb.1(0x60000000)67    liveins: $f1, $f2, $f3, $f4, $f5, $f668  69    %5:f4rc = COPY killed $f670    %4:f4rc = COPY killed $f571    %3:f4rc = COPY killed $f472    %2:f4rc = COPY killed $f373    %1:f4rc = COPY killed $f274    %0:f4rc = COPY killed $f175    %6:crrc = FCMPUS killed %2, killed %376    %7:crbitrc = COPY killed %6.sub_eq77    BC killed %7, %bb.278    B %bb.179  80  bb.1.entry:81    successors: %bb.2(0x2aaaaaab), %bb.3(0x55555555)82  83    %8:crrc = FCMPUS killed %0, killed %184    %9:crbitrc = COPY killed %8.sub_eq85    BC killed %9, %bb.386  87  bb.2.entry:88    successors: %bb.3(0x80000000)89  90  91  bb.3.entry:92    %11:f4rc = PHI %5, %bb.2, %4, %bb.193    $f1 = COPY killed %1194    BLR8 implicit $lr8, implicit $rm, implicit killed $f195 96...97---98name:            select-i1-vs-i199alignment:       16100exposesReturnsTwice: false101legalized:       false102regBankSelected: false103selected:        false104failedISel:      false105tracksRegLiveness: true106hasWinCFI:       false107registers:108  - { id: 0, class: g8rc, preferred-register: '' }109  - { id: 1, class: g8rc_and_g8rc_nox0, preferred-register: '' }110  - { id: 2, class: g8rc, preferred-register: '' }111  - { id: 3, class: g8rc, preferred-register: '' }112  - { id: 4, class: g8rc_and_g8rc_nox0, preferred-register: '' }113  - { id: 5, class: gprc, preferred-register: '' }114  - { id: 6, class: crrc, preferred-register: '' }115  - { id: 7, class: crbitrc, preferred-register: '' }116  - { id: 8, class: gprc, preferred-register: '' }117  - { id: 9, class: crrc, preferred-register: '' }118  - { id: 10, class: crbitrc, preferred-register: '' }119  - { id: 11, class: crbitrc, preferred-register: '' }120liveins:121  - { reg: '$x3', virtual-reg: '%4' }122frameInfo:123  isFrameAddressTaken: false124  isReturnAddressTaken: false125  hasStackMap:     false126  hasPatchPoint:   false127  stackSize:       0128  offsetAdjustment: 0129  maxAlignment:    1130  adjustsStack:    false131  hasCalls:        false132  stackProtector:  ''133  maxCallFrameSize: 4294967295134  cvBytesOfCalleeSavedRegisters: 0135  hasOpaqueSPAdjustment: false136  hasVAStart:      false137  hasMustTailInVarArgFunc: false138  localFrameSize:  0139  savePoint:       []140  restorePoint:    []141fixedStack:      []142stack:           []143callSites:       []144constants:       []145machineFunctionInfo: {}146body:             |147  bb.0.entry:148    successors: %bb.1(0x80000000)149    liveins: $x3150  151    %4:g8rc_and_g8rc_nox0 = COPY killed $x3152    %0:g8rc = LD 0, %4 :: (dereferenceable load (s64) from %ir.p)153  154  bb.1.loop:155    successors: %bb.1(0x20000000), %bb.2(0x60000000)156  157    %1:g8rc_and_g8rc_nox0 = PHI %0, %bb.0, %2, %bb.1, %3, %bb.3, %2, %bb.2158    %5:gprc = LBZ 0, %1 :: (load (s8) from %ir.0)159    %6:crrc = CMPWI killed %5, 0160    %7:crbitrc = COPY killed %6.sub_eq161    %2:g8rc = nuw ADDI8 %1, 1162    STD %2, 0, %4 :: (store (s64) into %ir.p)163    %8:gprc = LBZ 1, %1 :: (load (s8) from %ir.incdec.ptr)164    BCn killed %7, %bb.1165    B %bb.2166  167  bb.2.loop:168    successors: %bb.3(0x55555555), %bb.1(0x2aaaaaab)169  170    %9:crrc = CMPWI killed %8, 0171    %10:crbitrc = COPY killed %9.sub_eq172    BC killed %10, %bb.1173    B %bb.3174  175  bb.3.if.then3:176    successors: %bb.1(0x80000000)177  178    %3:g8rc = nuw ADDI8 killed %1, 2179    STD %3, 0, %4 :: (store (s64) into %ir.p)180    B %bb.1181 182  ; CHECK-LABEL: name: testfloatslt183  ; CHECK: bb.0.entry:184  ; CHECK:   successors: %bb.1(0x80000000)185  ; CHECK:   liveins: $x3186 187  ; CHECK:   %4:g8rc_and_g8rc_nox0 = COPY killed $x3188  ; CHECK:   %0:g8rc = LD 0, %4 :: (dereferenceable load (s64) from %ir.p)189  ; CHECK:   %12:g8rc_and_g8rc_nox0 = COPY killed %0190 191  ; CHECK: bb.1.loop:192  ; CHECK:   successors: %bb.1(0x20000000), %bb.2(0x60000000)193 194  ; CHECK:   %1:g8rc_and_g8rc_nox0 = COPY killed %12195  ; CHECK:   %5:gprc = LBZ 0, %1 :: (load (s8) from %ir.0)196  ; CHECK:   %6:crrc = CMPWI killed %5, 0197  ; CHECK:   %7:crbitrc = COPY killed %6.sub_eq198  ; CHECK:   %2:g8rc = nuw ADDI8 %1, 1199  ; CHECK:   STD %2, 0, %4 :: (store (s64) into %ir.p)200  ; CHECK:   %8:gprc = LBZ 1, %1 :: (load (s8) from %ir.incdec.ptr)201  ; CHECK:   %12:g8rc_and_g8rc_nox0 = COPY %2202  ; CHECK:   BCn killed %7, %bb.1203  ; CHECK:   B %bb.2204 205  ; CHECK: bb.2.loop:206  ; CHECK:   successors: %bb.3(0x55555555), %bb.1(0x2aaaaaab)207 208  ; CHECK:   %9:crrc = CMPWI killed %8, 0209  ; CHECK:   %10:crbitrc = COPY killed %9.sub_eq210  ; CHECK:   %12:g8rc_and_g8rc_nox0 = COPY killed %2211  ; CHECK:   BC killed %10, %bb.1212  ; CHECK:   B %bb.3213 214  ; CHECK: bb.3.if.then3:215  ; CHECK:   successors: %bb.1(0x80000000)216 217  ; CHECK:   %3:g8rc = nuw ADDI8 killed %1, 2218  ; CHECK:   STD %3, 0, %4 :: (store (s64) into %ir.p)219  ; CHECK:   %12:g8rc_and_g8rc_nox0 = COPY killed %3220  ; CHECK:   B %bb.1221 222...223