blob: ed49a85f11d3386f3039e2f09cbeac27e4de9854 [file] [log] [blame]
Misha Brukman14285c82003-09-15 20:02:53 +00001; RUN: llvm-as < %s | opt -no-aa -ds-aa -load-vn -gcse | llvm-dis | not grep load
Chris Lattnerb260eb82003-06-29 17:18:59 +00002%T = type { int*, int* }
3
4int %main() {
5 %A = alloca %T
6 %B = alloca { %T }
7 %C = alloca %T*
8 %Bp = getelementptr { %T }* %B, long 0, ubyte 0
9
10 %i0 = alloca int
11 %i1 = alloca int
12 %Ap0 = getelementptr %T* %A, long 0, ubyte 0
13 %Ap1 = getelementptr %T* %A, long 0, ubyte 1
14 store int* %i0, int** %Ap0
15 store int* %i1, int** %Ap1
16
17 store int 0, int* %i0
18 store int 1, int* %i1
19 %RetVal = load int* %i0 ; This load should be deletable
20
21 store %T* %A, %T** %C
22 store %T* %Bp, %T** %C ; This store was causing merging to happen!
23 ret int %RetVal
24}