1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -basicaa -da-delinearize -da 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - consistent input [S S]! 4*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 5*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - input [* *]! 6*9880d681SAndroid Build Coastguard Worker; 7*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n8:16:32-S64" 8*9880d681SAndroid Build Coastguard Workertarget triple = "thumbv7--linux-gnueabi" 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine void @f(i32** %a, i32 %n) align 2 { 11*9880d681SAndroid Build Coastguard Workerfor.preheader: 12*9880d681SAndroid Build Coastguard Worker %t.0 = ashr exact i32 %n, 3 13*9880d681SAndroid Build Coastguard Worker br label %for.body.1 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerfor.body.1: 16*9880d681SAndroid Build Coastguard Worker %i.1 = phi i32 [ %t.5, %for.inc ], [ 0, %for.preheader ] 17*9880d681SAndroid Build Coastguard Worker %i.2 = phi i32 [ %i.5, %for.inc ], [ %t.0, %for.preheader ] 18*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.inc, label %for.body.2 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerfor.body.2: 21*9880d681SAndroid Build Coastguard Worker %i.3 = phi i32 [ %t.1, %for.body.2 ], [ %i.1, %for.body.1 ] 22*9880d681SAndroid Build Coastguard Worker %t.1 = add i32 %i.3, 1 23*9880d681SAndroid Build Coastguard Worker %t.2 = load i32*, i32** %a, align 4 24*9880d681SAndroid Build Coastguard Worker %t.3 = getelementptr inbounds i32, i32* %t.2, i32 %i.3 25*9880d681SAndroid Build Coastguard Worker %t.4 = load i32, i32* %t.3, align 4 26*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.inc, label %for.body.2 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerfor.inc: 29*9880d681SAndroid Build Coastguard Worker %i.4 = phi i32 [ %i.2, %for.body.1 ], [ %i.2, %for.body.2 ] 30*9880d681SAndroid Build Coastguard Worker %t.5 = add i32 %i.1, %i.4 31*9880d681SAndroid Build Coastguard Worker %i.5 = add i32 %i.2, -1 32*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.exit, label %for.body.1 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerfor.exit: 35*9880d681SAndroid Build Coastguard Worker ret void 36*9880d681SAndroid Build Coastguard Worker} 37