1*9880d681SAndroid Build Coastguard Worker; This testcase ensures that CFL AA gives conservative answers on variables 2*9880d681SAndroid Build Coastguard Worker; that involve arguments. 3*9880d681SAndroid Build Coastguard Worker; (Everything should alias everything, because args can alias globals, so the 4*9880d681SAndroid Build Coastguard Worker; aliasing sets should of args+alloca+global should be combined) 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -disable-basicaa -cfl-steens-aa -aa-eval -print-may-aliases -disable-output 2>&1 | FileCheck %s 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; CHECK: Function: test 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker@g = external global i32 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine void @test(i1 %c, i32* %arg1, i32* %arg2) { 13*9880d681SAndroid Build Coastguard Worker ; CHECK: 15 Total Alias Queries Performed 14*9880d681SAndroid Build Coastguard Worker ; CHECK: 0 no alias responses 15*9880d681SAndroid Build Coastguard Worker %A = alloca i32, align 4 16*9880d681SAndroid Build Coastguard Worker %B = select i1 %c, i32* %arg1, i32* %arg2 17*9880d681SAndroid Build Coastguard Worker %C = select i1 %c, i32* @g, i32* %A 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker ret void 20*9880d681SAndroid Build Coastguard Worker} 21