[TTI] getTypeBasedIntrinsicInstrCost - add basic handling for strided load/store...
[llvm-project.git] / llvm / test / Transforms / GVN / pre-new-inst.ll
blob8e8cea0467d82b3a52088935d62284294a5d2ef0
1 ; RUN: opt -passes=gvn -S %s | FileCheck %s
3 %MyStruct = type { i32, i32 }
4 define i8 @foo(i64 %in, ptr %arr, i1 %arg) {
5   %addr = alloca %MyStruct
6   %dead = trunc i64 %in to i32
7   br i1 %arg, label %next, label %tmp
9 tmp:
10   call void @bar()
11   br label %next
13 next:
14   store i64 %in, ptr %addr
15   br label %final
17 final:
18   %idx32 = load i32, ptr %addr
20 ; CHECK: %resptr = getelementptr i8, ptr %arr, i32 %dead
21   %resptr = getelementptr i8, ptr %arr, i32 %idx32
22   %res = load i8, ptr %resptr
24   ret i8 %res
27 declare void @bar()