[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / IndVarSimplify / dangling-use.ll
blob208f1a6fde5567f551d4b6bbadf4b9255e2d54e2
1 ; RUN: opt -indvars -disable-output < %s 
3 target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i8:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128-n32"
4 target triple = "powerpc-unknown-linux-gnu"
6 define void @vec_inverse_5_7_vert_loop_copyseparate(i8* %x, i32 %n, i32 %rowbytes) nounwind {
7 entry:
8   %tmp1 = sdiv i32 %n, 3                          ; <i32> [#uses=1]
9   %tmp2 = sdiv i32 %rowbytes, 5                   ; <i32> [#uses=2]
10   br label %bb49
12 bb49:                                             ; preds = %bb48, %entry
13   %x_addr.0 = phi i8* [ %x, %entry ], [ %tmp481, %bb48 ] ; <i8*> [#uses=2]
14   br label %bb10
16 bb10:                                             ; preds = %bb49
17   %tmp326 = mul nsw i32 %tmp1, %tmp2              ; <i32> [#uses=1]
18   %tmp351 = getelementptr inbounds i8, i8* %x_addr.0, i32 %tmp326 ; <i8*> [#uses=1]
19   br i1 false, label %bb.nph, label %bb48
21 bb.nph:                                           ; preds = %bb10
22   br label %bb23
24 bb23:                                             ; preds = %bb28, %bb.nph
25   %pOriginHi.01 = phi i8* [ %tmp351, %bb.nph ], [ %pOriginHi.0, %bb28 ] ; <i8*> [#uses=2]
26   %tmp378 = bitcast i8* %pOriginHi.01 to i8*      ; <i8*> [#uses=1]
27   store i8* %tmp378, i8** null
28   %tmp385 = getelementptr inbounds i8, i8* %pOriginHi.01, i32 %tmp2 ; <i8*> [#uses=1]
29   br label %bb28
31 bb28:                                             ; preds = %bb23
32   %pOriginHi.0 = phi i8* [ %tmp385, %bb23 ]       ; <i8*> [#uses=1]
33   br i1 false, label %bb23, label %bb28.bb48_crit_edge
35 bb28.bb48_crit_edge:                              ; preds = %bb28
36   br label %bb48
38 bb48:                                             ; preds = %bb28.bb48_crit_edge, %bb10
39   %tmp481 = getelementptr inbounds i8, i8* %x_addr.0, i32 1 ; <i8*> [#uses=1]
40   br label %bb49