1*9880d681SAndroid Build Coastguard Worker; RUN: opt -basicaa -gvn -S %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker%MyStruct = type { i32, i32 } 4*9880d681SAndroid Build Coastguard Workerdefine i8 @foo(i64 %in, i8* %arr) { 5*9880d681SAndroid Build Coastguard Worker %addr = alloca %MyStruct 6*9880d681SAndroid Build Coastguard Worker %dead = trunc i64 %in to i32 7*9880d681SAndroid Build Coastguard Worker br i1 undef, label %next, label %tmp 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workertmp: 10*9880d681SAndroid Build Coastguard Worker call void @bar() 11*9880d681SAndroid Build Coastguard Worker br label %next 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workernext: 14*9880d681SAndroid Build Coastguard Worker %addr64 = bitcast %MyStruct* %addr to i64* 15*9880d681SAndroid Build Coastguard Worker store i64 %in, i64* %addr64 16*9880d681SAndroid Build Coastguard Worker br label %final 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerfinal: 19*9880d681SAndroid Build Coastguard Worker %addr32 = getelementptr %MyStruct, %MyStruct* %addr, i32 0, i32 0 20*9880d681SAndroid Build Coastguard Worker %idx32 = load i32, i32* %addr32 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; CHECK: %resptr = getelementptr i8, i8* %arr, i32 %dead 23*9880d681SAndroid Build Coastguard Worker %resptr = getelementptr i8, i8* %arr, i32 %idx32 24*9880d681SAndroid Build Coastguard Worker %res = load i8, i8* %resptr 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker ret i8 %res 27*9880d681SAndroid Build Coastguard Worker} 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerdeclare void @bar() 30