llvm-6502/test/CodeGen/Mips/ci2.ll
Reed Kotler ab3cb5cf1b Fix a funny bug I introduced during conversion of ARM constant islands to Mips.
I had to move some code and I moved a declaration forward past it's first use
in the function but by nutty coincidence there was another variable of the same
name and type and  with completely unrelated function that was declared globally
in the class so no compilation error ensued.
It required some unusual conditions for it to even matter. Caused test
case casts.c in test-suite to fail during compilation with a duplicate 
symbol error. I would have noticed it during final code review for this port.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195565 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-24 02:53:09 +00:00

40 lines
1.4 KiB
LLVM

; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -soft-float -mips16-hard-float -relocation-model=static -mips16-constant-islands < %s | FileCheck %s -check-prefix=constisle
@i = common global i32 0, align 4
@b = common global i32 0, align 4
@l = common global i32 0, align 4
; Function Attrs: nounwind
define void @foo() #0 {
entry:
store i32 305419896, i32* @i, align 4
%0 = load i32* @b, align 4
%tobool = icmp ne i32 %0, 0
br i1 %tobool, label %if.then, label %if.else
if.then: ; preds = %entry
store i32 10, i32* @b, align 4
br label %if.end
if.else: ; preds = %entry
store i32 20, i32* @b, align 4
br label %if.end
if.end: ; preds = %if.else, %if.then
call void asm sideeffect ".space 100000", ""() #1, !srcloc !1
store i32 305419896, i32* @l, align 4
ret void
; constisle: $CPI0_1:
; constisle .4byte 305419896 # 0x12345678
; constisle #APP
; constisle .space 100000
; constisle #NO_APP
; constisle $CPI0_0:
; constisle .4byte 305419896 # 0x12345678
}
attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind }
!1 = metadata !{i32 103}