[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / SimpleLoopUnswitch / 2006-06-13-SingleEntryPHI.ll
blob2c6424c235c4614526e9db490a67387632864728
1 ; RUN: opt < %s -simple-loop-unswitch -verify-memoryssa -disable-output
3         %struct.BLEND_MAP = type { i16, i16, i16, i32, %struct.BLEND_MAP_ENTRY* }
4         %struct.BLEND_MAP_ENTRY = type { float, i8, { [5 x float], [4 x i8] } }
5         %struct.TPATTERN = type { i16, i16, i16, i32, float, float, float, %struct.WARP*, %struct.TPATTERN*, %struct.BLEND_MAP*, { %struct.anon, [4 x i8] } }
6         %struct.TURB = type { i16, %struct.WARP*, [3 x double], i32, float, float }
7         %struct.WARP = type { i16, %struct.WARP* }
8         %struct.anon = type { float, [3 x double] }
10 define void @Parse_Pattern() {
11 entry:
12         br label %bb1096.outer20
13 bb671:          ; preds = %cond_true1099
14         br label %bb1096.outer23
15 bb1096.outer20.loopexit:                ; preds = %cond_true1099
16         %Local_Turb.0.ph24.lcssa = phi %struct.TURB* [ %Local_Turb.0.ph24, %cond_true1099 ]             ; <%struct.TURB*> [#uses=1]
17         br label %bb1096.outer20
18 bb1096.outer20:         ; preds = %bb1096.outer20.loopexit, %entry
19         %Local_Turb.0.ph22 = phi %struct.TURB* [ undef, %entry ], [ %Local_Turb.0.ph24.lcssa, %bb1096.outer20.loopexit ]                ; <%struct.TURB*> [#uses=1]
20         %tmp1098 = icmp eq i32 0, 0             ; <i1> [#uses=1]
21         br label %bb1096.outer23
22 bb1096.outer23:         ; preds = %bb1096.outer20, %bb671
23         %Local_Turb.0.ph24 = phi %struct.TURB* [ %Local_Turb.0.ph22, %bb1096.outer20 ], [ null, %bb671 ]                ; <%struct.TURB*> [#uses=2]
24         br label %bb1096
25 bb1096:         ; preds = %cond_true1099, %bb1096.outer23
26         br i1 %tmp1098, label %cond_true1099, label %bb1102
27 cond_true1099:          ; preds = %bb1096
28         switch i32 0, label %bb1096.outer20.loopexit [
29                  i32 161, label %bb671
30                  i32 359, label %bb1096
31         ]
32 bb1102:         ; preds = %bb1096
33         %Local_Turb.0.ph24.lcssa1 = phi %struct.TURB* [ %Local_Turb.0.ph24, %bb1096 ]           ; <%struct.TURB*> [#uses=0]
34         ret void