[LLVMbugs] [Bug 18370] New: [thumbv8] insts that sets CPSR are bundled into IT block mistakenly

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jan 3 12:10:20 PST 2014


http://llvm.org/bugs/show_bug.cgi?id=18370

            Bug ID: 18370
           Summary: [thumbv8] insts that sets CPSR are bundled into IT
                    block mistakenly
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: weimingz at codeaurora.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 11812
  --> http://llvm.org/bugs/attachment.cgi?id=11812&action=edit
test case

llc < test.ll 
emits:
foo:
@ BB#0:                                 @ %entry
    mov    r1, r0
    movs    r0, #11
    cmp    r1, #0
    it    ne
    mulsne    r0, r1, r0  ===> incorrrect: it can't set CPSR inside IT
    bx    lr


Reason:
    Thumbv8 requires running Thumb2SizeReduction pass before IfConv to
    convert wide 32-bit Thumb2 insts to 16-bit narrow insts becuase wide
    insts are not eligible for IT blocks. However, Thumb2SizeReduction may
    also set CPSR for converted instrs (e.g. mul -> muls). However, such
    insts should not be bundled.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140103/533e56f4/attachment.html>


More information about the llvm-bugs mailing list