summaryrefslogtreecommitdiff
path: root/test/Transforms/TailDup/2003-08-23-InvalidatedPointers.ll
blob: 72e03e10c568fa6aba00cb3173360ff6404ff733 (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
; RUN: llvm-upgrade < %s | llvm-as | opt -tailduplicate -disable-output

implementation

int %sell_haggle() {
entry:		; No predecessors!
	br bool false, label %then.5, label %UnifiedExitNode

then.5:		; preds = %entry
	br bool false, label %loopentry.1.preheader, label %else.1

else.1:		; preds = %then.5
	br label %loopentry.1.preheader

loopentry.1.preheader:		; preds = %then.5, %else.1
	%final_ask.0 = phi int [ 0, %else.1 ], [ 0, %then.5 ]		; <int> [#uses=2]
	br label %loopentry.1

loopentry.1:		; preds = %loopentry.1.preheader, %endif.17
	switch uint 0, label %UnifiedExitNode [
		 uint 2, label %UnifiedExitNode
		 uint 1, label %endif.16
	]

endif.16:		; preds = %loopentry.1
	br bool false, label %then.17, label %UnifiedExitNode

then.17:		; preds = %endif.16
	br bool false, label %then.18, label %endif.17

then.18:		; preds = %then.17
	br bool false, label %endif.17, label %UnifiedExitNode

endif.17:		; preds = %then.17, %then.18
	%cur_ask.3 = phi int [ %final_ask.0, %then.17 ], [ %final_ask.0, %then.18 ]		; <int> [#uses=0]
	br bool false, label %loopentry.1, label %UnifiedExitNode

UnifiedExitNode:		; preds = %entry, %endif.17, %then.18, %endif.16, %loopentry.1, %loopentry.1
	ret int 0
}