summaryrefslogtreecommitdiff
path: root/test/Analysis/DSGraph/2003-06-29-NodeCollapsing.ll
blob: db956231f8f11e6667420930c4ab9176fc7f45b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
; RUN: llvm-as < %s | opt -no-aa -ds-aa -load-vn -gcse | llvm-dis | not grep load
%T = type { int*, int* }

int %main() {
	%A = alloca %T
	%B = alloca { %T }
	%C = alloca %T*
	%Bp = getelementptr { %T }* %B, long 0, uint 0

	%i0 = alloca int
	%i1 = alloca int
	%Ap0 = getelementptr %T* %A, long 0, uint 0
	%Ap1 = getelementptr %T* %A, long 0, uint 1
	store int* %i0, int** %Ap0
	store int* %i1, int** %Ap1

	store int 0, int* %i0
	store int 1, int* %i1
	%RetVal = load int* %i0   ; This load should be deletable

	store %T* %A, %T** %C
	store %T* %Bp, %T** %C    ; This store was causing merging to happen!
	ret int %RetVal
}