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