1*9880d681SAndroid Build Coastguard Worker; RUN: opt -basicaa -inline -gvn -S -max-cg-scc-iterations=1 < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; rdar://6295824 and PR6724 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" 5*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-apple-darwin10.0.0" 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine i32 @foo(i32 ()** noalias nocapture %p, i64* noalias nocapture %q) nounwind ssp { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker store i32 ()* @bar, i32 ()** %p 10*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %q 11*9880d681SAndroid Build Coastguard Worker %tmp3 = load i32 ()*, i32 ()** %p ; <i32 ()*> [#uses=1] 12*9880d681SAndroid Build Coastguard Worker %call = tail call i32 %tmp3() nounwind ; <i32> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker ret i32 %call 14*9880d681SAndroid Build Coastguard Worker} 15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @foo( 16*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 7 17*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @bar( 18*9880d681SAndroid Build Coastguard Worker; CHECK: ret i32 7 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdefine internal i32 @bar() nounwind readnone ssp { 21*9880d681SAndroid Build Coastguard Workerentry: 22*9880d681SAndroid Build Coastguard Worker ret i32 7 23*9880d681SAndroid Build Coastguard Worker} 24