1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -cfl-steens-aa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; Derived from (a subset of) BasicAA/phi-and-select.ll 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; CHECK: Function: qux 5*9880d681SAndroid Build Coastguard Worker; CHECK: NoAlias: double* %a, double* %b 6*9880d681SAndroid Build Coastguard Worker; CHECK: ===== Alias Analysis Evaluator Report ===== 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; Two PHIs with disjoint sets of inputs. 9*9880d681SAndroid Build Coastguard Workerdefine void @qux(i1 %m, double* noalias %x, double* noalias %y, 10*9880d681SAndroid Build Coastguard Worker i1 %n, double* noalias %v, double* noalias %w) { 11*9880d681SAndroid Build Coastguard Workerentry: 12*9880d681SAndroid Build Coastguard Worker br i1 %m, label %true, label %false 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workertrue: 15*9880d681SAndroid Build Coastguard Worker br label %exit 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerfalse: 18*9880d681SAndroid Build Coastguard Worker br label %exit 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerexit: 21*9880d681SAndroid Build Coastguard Worker %a = phi double* [ %x, %true ], [ %y, %false ] 22*9880d681SAndroid Build Coastguard Worker br i1 %n, label %ntrue, label %nfalse 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerntrue: 25*9880d681SAndroid Build Coastguard Worker br label %nexit 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workernfalse: 28*9880d681SAndroid Build Coastguard Worker br label %nexit 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workernexit: 31*9880d681SAndroid Build Coastguard Worker %b = phi double* [ %v, %ntrue ], [ %w, %nfalse ] 32*9880d681SAndroid Build Coastguard Worker store volatile double 0.0, double* %a 33*9880d681SAndroid Build Coastguard Worker store volatile double 1.0, double* %b 34*9880d681SAndroid Build Coastguard Worker ret void 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37