1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -ipconstprop -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; See PR26774 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i32 @baz() { 6*9880d681SAndroid Build Coastguard Worker ret i32 10 7*9880d681SAndroid Build Coastguard Worker} 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; We can const-prop @baz's return value *into* @foo, but cannot 10*9880d681SAndroid Build Coastguard Worker; constprop @foo's return value into bar. 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine linkonce_odr i32 @foo() { 13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @foo( 14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %val = call i32 @baz() 15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret i32 10 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker %val = call i32 @baz() 18*9880d681SAndroid Build Coastguard Worker ret i32 %val 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine i32 @bar() { 22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @bar( 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %val = call i32 @foo() 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret i32 %val 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker %val = call i32 @foo() 27*9880d681SAndroid Build Coastguard Worker ret i32 %val 28*9880d681SAndroid Build Coastguard Worker} 29