Fixed some bugs in register stack pass.
[llvm/zpu.git] / test / CodeGen / Blackfin / jumptable.ll
blob263533c000970c747ab3116acb8947f80db9a65f
1 ; RUN: llc < %s -march=bfin -verify-machineinstrs | FileCheck %s
3 ; CHECK: .section .rodata
4 ; CHECK: JTI0_0:
5 ; CHECK: .long .BB0_1
7 define i32 @oper(i32 %op, i32 %A, i32 %B) {
8 entry:
9         switch i32 %op, label %bbx [
10                i32 1 , label %bb1
11                i32 2 , label %bb2
12                i32 3 , label %bb3
13                i32 4 , label %bb4
14                i32 5 , label %bb5
15                i32 6 , label %bb6
16                i32 7 , label %bb7
17                i32 8 , label %bb8
18                i32 9 , label %bb9
19                i32 10, label %bb10
20         ]
21 bb1:
22         %R1 = add i32 %A, %B            ; <i32> [#uses=1]
23         ret i32 %R1
24 bb2:
25         %R2 = sub i32 %A, %B            ; <i32> [#uses=1]
26         ret i32 %R2
27 bb3:
28         %R3 = mul i32 %A, %B            ; <i32> [#uses=1]
29         ret i32 %R3
30 bb4:
31         %R4 = sdiv i32 %A, %B           ; <i32> [#uses=1]
32         ret i32 %R4
33 bb5:
34         %R5 = udiv i32 %A, %B           ; <i32> [#uses=1]
35         ret i32 %R5
36 bb6:
37         %R6 = srem i32 %A, %B           ; <i32> [#uses=1]
38         ret i32 %R6
39 bb7:
40         %R7 = urem i32 %A, %B           ; <i32> [#uses=1]
41         ret i32 %R7
42 bb8:
43         %R8 = and i32 %A, %B            ; <i32> [#uses=1]
44         ret i32 %R8
45 bb9:
46         %R9 = or i32 %A, %B             ; <i32> [#uses=1]
47         ret i32 %R9
48 bb10:
49         %R10 = xor i32 %A, %B           ; <i32> [#uses=1]
50         ret i32 %R10
51 bbx:
52         ret i32 0