This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / 2008-03-13-TwoAddrPassCrash.ll
blobc6ba22ea3da6036460f4bb6094353bf349284929
1 ; RUN: llc < %s -march=x86
3 define i16 @t(i32 %depth) signext nounwind  {
4 entry:
5         br i1 false, label %bb74, label %bb
6 bb:             ; preds = %entry
7         ret i16 0
8 bb74:           ; preds = %entry
9         switch i32 0, label %bail [
10                  i32 17, label %bb84
11                  i32 18, label %bb81
12                  i32 33, label %bb80
13                  i32 34, label %bb84
14         ]
15 bb80:           ; preds = %bb74
16         switch i32 %depth, label %bb103 [
17                  i32 16, label %bb96
18                  i32 32, label %bb91
19                  i32 846624121, label %bb96
20                  i32 1094862674, label %bb91
21                  i32 1096368963, label %bb91
22                  i32 1111970369, label %bb91
23                  i32 1278555445, label %bb96
24                  i32 1278555701, label %bb96
25                  i32 1380401729, label %bb91
26                  i32 1668118891, label %bb91
27                  i32 1916022840, label %bb91
28                  i32 1983131704, label %bb91
29                  i32 2037741171, label %bb96
30                  i32 2037741173, label %bb96
31         ]
32 bb81:           ; preds = %bb74
33         ret i16 0
34 bb84:           ; preds = %bb74, %bb74
35         switch i32 %depth, label %bb103 [
36                  i32 16, label %bb96
37                  i32 32, label %bb91
38                  i32 846624121, label %bb96
39                  i32 1094862674, label %bb91
40                  i32 1096368963, label %bb91
41                  i32 1111970369, label %bb91
42                  i32 1278555445, label %bb96
43                  i32 1278555701, label %bb96
44                  i32 1380401729, label %bb91
45                  i32 1668118891, label %bb91
46                  i32 1916022840, label %bb91
47                  i32 1983131704, label %bb91
48                  i32 2037741171, label %bb96
49                  i32 2037741173, label %bb96
50         ]
51 bb91:           ; preds = %bb84, %bb84, %bb84, %bb84, %bb84, %bb84, %bb84, %bb84, %bb80, %bb80, %bb80, %bb80, %bb80, %bb80, %bb80, %bb80
52         %wMB.0.reg2mem.0 = phi i16 [ 16, %bb80 ], [ 16, %bb80 ], [ 16, %bb80 ], [ 16, %bb80 ], [ 16, %bb80 ], [ 16, %bb80 ], [ 16, %bb80 ], [ 16, %bb80 ], [ 0, %bb84 ], [ 0, %bb84 ], [ 0, %bb84 ], [ 0, %bb84 ], [ 0, %bb84 ], [ 0, %bb84 ], [ 0, %bb84 ], [ 0, %bb84 ]               ; <i16> [#uses=2]
53         %tmp941478 = shl i16 %wMB.0.reg2mem.0, 2                ; <i16> [#uses=1]
54         br label %bb103
55 bb96:           ; preds = %bb84, %bb84, %bb84, %bb84, %bb84, %bb84, %bb80, %bb80, %bb80, %bb80, %bb80, %bb80
56         ret i16 0
57 bb103:          ; preds = %bb91, %bb84, %bb80
58         %wMB.0.reg2mem.2 = phi i16 [ %wMB.0.reg2mem.0, %bb91 ], [ 16, %bb80 ], [ 0, %bb84 ]             ; <i16> [#uses=1]
59         %bBump.0 = phi i16 [ %tmp941478, %bb91 ], [ 16, %bb80 ], [ 0, %bb84 ]           ; <i16> [#uses=0]
60         br i1 false, label %bb164, label %UnifiedReturnBlock
61 bb164:          ; preds = %bb103
62         %tmp167168 = sext i16 %wMB.0.reg2mem.2 to i32           ; <i32> [#uses=0]
63         ret i16 0
64 bail:           ; preds = %bb74
65         ret i16 0
66 UnifiedReturnBlock:             ; preds = %bb103
67         ret i16 0