This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / Mips / blockaddr.ll
blob2b0631428c5bed67b2581d598d76ba1d4b250f2d
1 ; RUN: llc -march=mipsel < %s | FileCheck %s
3 @reg = common global i8* null, align 4
5 define i8* @dummy(i8* %x) nounwind readnone noinline {
6 entry:
7   ret i8* %x
10 ; CHECK: lw  $2, %got($tmp1)($gp)
11 ; CHECK: addiu $4, $2, %lo($tmp1)
12 ; CHECK: lw  $2, %got($tmp2)($gp)
13 ; CHECK: addiu $2, $2, %lo($tmp2)
14 define void @f() nounwind {
15 entry:
16   %call = tail call i8* @dummy(i8* blockaddress(@f, %baz))
17   indirectbr i8* %call, [label %baz, label %foo]
19 foo:                                              ; preds = %foo, %entry
20   store i8* blockaddress(@f, %foo), i8** @reg, align 4
21   br label %foo
23 baz:                                              ; preds = %entry
24   store i8* null, i8** @reg, align 4
25   ret void