brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 21f08cb Raw
102 lines · plain
1# RUN: llc -mtriple=ppc32-- %s -run-pass=phi-node-elimination \2# RUN:   -verify-machineinstrs -o /dev/null 2>&13# RUN: llc -mtriple=ppc32-- %s --passes=phi-node-elimination -o /dev/null 2>&14# RUN: llc -mtriple=ppc32-- %s -start-before=phi-node-elimination \5# RUN:   -verify-machineinstrs -o /dev/null 2>&16 7--- |8  define void @VerifyTwoAddressCrash(i16 %div.0.i.i.i.i, i32 %L_num.0.i.i.i.i, i32 %tmp1.i.i206.i.i, ptr %P) {9    %X = shl i16 %div.0.i.i.i.i, 110    %tmp28.i.i.i.i = shl i32 %L_num.0.i.i.i.i, 111    %tmp31.i.i.i.i = icmp slt i32 %tmp28.i.i.i.i, %tmp1.i.i206.i.i12    %tmp31.i.i.i.i.upgrd.1 = zext i1 %tmp31.i.i.i.i to i1613    %tmp371.i.i.i.i1 = or i16 %tmp31.i.i.i.i.upgrd.1, %X14    %div.0.be.i.i.i.i = xor i16 %tmp371.i.i.i.i1, 115    store i16 %div.0.be.i.i.i.i, ptr %P, align 216    ret void17  }18 19...20---21name:            VerifyTwoAddressCrash22alignment:       423exposesReturnsTwice: false24legalized:       false25regBankSelected: false26selected:        false27failedISel:      false28tracksRegLiveness: true29hasWinCFI:       false30registers:31  - { id: 0, class: gprc, preferred-register: '' }32  - { id: 1, class: gprc, preferred-register: '' }33  - { id: 2, class: gprc, preferred-register: '' }34  - { id: 3, class: gprc_and_gprc_nor0, preferred-register: '' }35  - { id: 4, class: gprc, preferred-register: '' }36  - { id: 5, class: crrc, preferred-register: '' }37  - { id: 6, class: crbitrc, preferred-register: '' }38  - { id: 7, class: gprc_and_gprc_nor0, preferred-register: '' }39  - { id: 8, class: gprc_and_gprc_nor0, preferred-register: '' }40  - { id: 9, class: gprc, preferred-register: '' }41  - { id: 10, class: gprc, preferred-register: '' }42  - { id: 11, class: gprc, preferred-register: '' }43liveins:44  - { reg: '$r3', virtual-reg: '%0' }45  - { reg: '$r4', virtual-reg: '%1' }46  - { reg: '$r5', virtual-reg: '%2' }47  - { reg: '$r6', virtual-reg: '%3' }48frameInfo:49  isFrameAddressTaken: false50  isReturnAddressTaken: false51  hasStackMap:     false52  hasPatchPoint:   false53  stackSize:       054  offsetAdjustment: 055  maxAlignment:    456  adjustsStack:    false57  hasCalls:        false58  stackProtector:  ''59  maxCallFrameSize: 429496729560  cvBytesOfCalleeSavedRegisters: 061  hasOpaqueSPAdjustment: false62  hasVAStart:      false63  hasMustTailInVarArgFunc: false64  localFrameSize:  065  savePoint:       []66  restorePoint:    []67fixedStack:      []68stack:           []69callSites:       []70constants:       []71machineFunctionInfo: {}72body:             |73  bb.0 (%ir-block.0):74    liveins: $r3, $r4, $r5, $r675 76    %3:gprc_and_gprc_nor0 = COPY killed $r677    %2:gprc = COPY killed $r578    %1:gprc = COPY killed $r479    %0:gprc = COPY killed $r380    %4:gprc = RLWINM killed %1, 1, 0, 3081    %5:crrc = CMPW killed %4, killed %282    %6:crbitrc = COPY killed %5.sub_lt83    %7:gprc_and_gprc_nor0 = LI 084    %8:gprc_and_gprc_nor0 = LI 185    %9:gprc = ISEL killed %8, killed %7, killed %686    %10:gprc = RLWIMI killed %9, killed %0, 1, 0, 3087    %11:gprc = XORI killed %10, 188    STH killed %11, 0, killed %3 :: (store (s16) into %ir.P)89    BLR implicit $lr, implicit $rm90 91...92 93# Used to result in94#95# Bad machine code: Two-address instruction operands must be identical96# - function:    VerifyTwoAddressCrash97# - basic block: %bb.098# - instruction: %10:gprc = RLWIMI killed %9:gprc(tied-def 0), killed %0:gprc, 1, 0, 3099# - operand 1:   killed %9:gprc(tied-def 0)100# LLVM ERROR: Found 1 machine code errors.101# Just verify that we do not crash (or get verifier error).102