[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / 2007-11-07-MulBy4.ll
blob9ecf0680f0d34d045ea3b90629e7610d99788050
1 ; RUN: llc < %s -mtriple=i686-- | not grep imul
3         %struct.eebb = type { %struct.eebb*, i16* }
4         %struct.hf = type { %struct.hf*, i16*, i8*, i32, i32, %struct.eebb*, i32, i32, i8*, i8*, i8*, i8*, i16*, i8*, i16*, %struct.ri, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [30 x i32], %struct.eebb, i32, i8* }
5         %struct.foo_data = type { i32, i32, i32, i32*, i32, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i16*, i16*, i16*, i16*, i32, i32, i32, %struct.ri*, i8*, %struct.hf* }
6         %struct.ri = type { %struct.ri*, i32, i8*, i16*, i32*, i32 }
8 define fastcc i32 @foo(i16* %eptr, i8* %ecode, %struct.foo_data* %md, i32 %ims) {
9 entry:
10         %tmp36 = load i32, i32* null, align 4           ; <i32> [#uses=1]
11         %tmp37 = icmp ult i32 0, %tmp36         ; <i1> [#uses=1]
12         br i1 %tmp37, label %cond_next79, label %cond_true
14 cond_true:              ; preds = %entry
15         ret i32 0
17 cond_next79:            ; preds = %entry
18         %tmp85 = load i32, i32* null, align 4           ; <i32> [#uses=1]
19         %tmp86 = icmp ult i32 0, %tmp85         ; <i1> [#uses=1]
20         br i1 %tmp86, label %cond_next130, label %cond_true89
22 cond_true89:            ; preds = %cond_next79
23         ret i32 0
25 cond_next130:           ; preds = %cond_next79
26         %tmp173 = icmp eq i32 0, 0              ; <i1> [#uses=1]
27         br i1 %tmp173, label %cond_next201, label %cond_true176
29 cond_true176:           ; preds = %cond_next130
30         ret i32 0
32 cond_next201:           ; preds = %cond_next130
33         switch i32 0, label %bb19955 [
34                  i32 0, label %bb1266
35                  i32 1, label %bb5018
36                  i32 2, label %bb5075
37                  i32 3, label %cond_true5534
38                  i32 4, label %cond_true5534
39                  i32 5, label %bb6039
40                  i32 6, label %bb6181
41                  i32 7, label %bb6323
42                  i32 8, label %bb6463
43                  i32 9, label %bb6605
44                  i32 10, label %bb6746
45                  i32 11, label %cond_next5871
46                  i32 16, label %bb5452
47                  i32 17, label %bb5395
48                  i32 19, label %bb4883
49                  i32 20, label %bb5136
50                  i32 23, label %bb12899
51                  i32 64, label %bb2162
52                  i32 69, label %bb1447
53                  i32 70, label %bb1737
54                  i32 71, label %bb1447
55                  i32 72, label %bb1737
56                  i32 73, label %cond_true1984
57                  i32 75, label %bb740
58                  i32 80, label %bb552
59         ]
61 bb552:          ; preds = %cond_next201
62         ret i32 0
64 bb740:          ; preds = %cond_next201
65         ret i32 0
67 bb1266:         ; preds = %cond_next201
68         ret i32 0
70 bb1447:         ; preds = %cond_next201, %cond_next201
71         ret i32 0
73 bb1737:         ; preds = %cond_next201, %cond_next201
74         ret i32 0
76 cond_true1984:          ; preds = %cond_next201
77         ret i32 0
79 bb2162:         ; preds = %cond_next201
80         ret i32 0
82 bb4883:         ; preds = %cond_next201
83         ret i32 0
85 bb5018:         ; preds = %cond_next201
86         ret i32 0
88 bb5075:         ; preds = %cond_next201
89         ret i32 0
91 bb5136:         ; preds = %cond_next201
92         ret i32 0
94 bb5395:         ; preds = %cond_next201
95         ret i32 0
97 bb5452:         ; preds = %cond_next201
98         ret i32 0
100 cond_true5534:          ; preds = %cond_next201, %cond_next201
101         ret i32 0
103 cond_next5871:          ; preds = %cond_next201
104         ret i32 0
106 bb6039:         ; preds = %cond_next201
107         ret i32 0
109 bb6181:         ; preds = %cond_next201
110         ret i32 0
112 bb6323:         ; preds = %cond_next201
113         ret i32 0
115 bb6463:         ; preds = %cond_next201
116         ret i32 0
118 bb6605:         ; preds = %cond_next201
119         ret i32 0
121 bb6746:         ; preds = %cond_next201
122         ret i32 0
124 bb12899:                ; preds = %cond_next201
125         ret i32 0
127 bb19955:                ; preds = %cond_next201
128         ret i32 0