https://llvm.org/bugs/show_bug.cgi?id=27500

            Bug ID: 27500
           Summary: [MSP430] codegen: strange branch instructions
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: MSP430
          Assignee: unassignedb...@nondot.org
          Reporter: pftb...@gmail.com
                CC: llvm-bugs@lists.llvm.org
    Classification: Unclassified

Created attachment 16256
  --> https://llvm.org/bugs/attachment.cgi?id=16256&action=edit
original.ll (does not trigger error)

When original.ll is optimized with `opt -O3` then llc generates strange
conditional branch instructions that look like this:

.LBB0_4:                                ; %if.then26
    cmp.b    #126, r7
    jne    4
    br    #.LBB0_57
.LBB0_5:                                ; %cond.end38
    mov.w    #1, r13
    mov.b    r7, r6
    and.b    #63, r6

"jne 4" instruction is then compiled by gcc into "jnz $+6" and in result we are
jumping over "mov.w #1, r13".

steps to reproduce:
$ opt -O3 original.ll -o optimized.bc
$ llc optimized.bc -o optimized.s
$ cat optimized.s | grep 'j.*\t4'
    jne    4
    jne    4

software versions:
(http://llvm.org/git/llvm.git 822155bcb5ae5fc09d4448b862758631c9378a3b)
LLVM (http://llvm.org/):
  LLVM version 3.9.0svn
  DEBUG build with assertions.
  Built Apr 24 2016 (08:41:34).
  Default target: x86_64-apple-darwin15.4.0
  Host CPU: haswell

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to