[mips] Add tests for the 'ret', 'call', and 'indirectbr' LLVM IR instruction.
[oota-llvm.git] / test / CodeGen / Mips / llvm-ir / indirectbr.ll
1 ; Test all important variants of the unconditional 'br' instruction.
2
3 ; RUN: llc -march=mips   -mcpu=mips32   < %s | FileCheck %s -check-prefix=ALL
4 ; RUN: llc -march=mips   -mcpu=mips32r2 < %s | FileCheck %s -check-prefix=ALL
5 ; RUN: llc -march=mips64 -mcpu=mips4    < %s | FileCheck %s -check-prefix=ALL
6 ; RUN: llc -march=mips64 -mcpu=mips64   < %s | FileCheck %s -check-prefix=ALL
7 ; RUN: llc -march=mips64 -mcpu=mips64r2 < %s | FileCheck %s -check-prefix=ALL
8
9 define i32 @br(i8 *%addr) {
10 ; ALL-LABEL: br:
11 ; ALL:           jr $4
12 ; ALL: $BB0_1: # %L1
13 ; ALL:           jr $ra
14 ; ALL:           addiu $2, $zero, 0
15 ; ALL: $BB0_2: # %L2
16 ; ALL:           jr $ra
17 ; ALL:           addiu $2, $zero, 1
18
19 entry:
20   indirectbr i8* %addr, [label %L1, label %L2]
21
22 L1:
23   ret i32 0
24
25 L2:
26   ret i32 1
27 }