summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/2009-07-06-TwoAddrAssert.ll
blob: fcc71aef23aedb290137d26afd524a433531da8c (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
; RUN: llc < %s -march=x86 -mtriple=x86_64-unknown-freebsd7.2
; PR4478

	%struct.sockaddr = type <{ i8, i8, [14 x i8] }>

define i32 @main(i32 %argc, i8** %argv) nounwind {
entry:
	br label %while.cond

while.cond:		; preds = %sw.bb6, %entry
	switch i32 undef, label %sw.default [
		i32 -1, label %while.end
		i32 119, label %sw.bb6
	]

sw.bb6:		; preds = %while.cond
	br i1 undef, label %if.then, label %while.cond

if.then:		; preds = %sw.bb6
	ret i32 1

sw.default:		; preds = %while.cond
	ret i32 1

while.end:		; preds = %while.cond
	br i1 undef, label %if.then15, label %if.end16

if.then15:		; preds = %while.end
	ret i32 1

if.end16:		; preds = %while.end
	br i1 undef, label %lor.lhs.false, label %if.then21

lor.lhs.false:		; preds = %if.end16
	br i1 undef, label %if.end22, label %if.then21

if.then21:		; preds = %lor.lhs.false, %if.end16
	ret i32 1

if.end22:		; preds = %lor.lhs.false
	br i1 undef, label %lor.lhs.false27, label %if.then51

lor.lhs.false27:		; preds = %if.end22
	br i1 undef, label %lor.lhs.false39, label %if.then51

lor.lhs.false39:		; preds = %lor.lhs.false27
	br i1 undef, label %if.end52, label %if.then51

if.then51:		; preds = %lor.lhs.false39, %lor.lhs.false27, %if.end22
	ret i32 1

if.end52:		; preds = %lor.lhs.false39
	br i1 undef, label %if.then57, label %if.end58

if.then57:		; preds = %if.end52
	ret i32 1

if.end58:		; preds = %if.end52
	br i1 undef, label %if.then64, label %if.end65

if.then64:		; preds = %if.end58
	ret i32 1

if.end65:		; preds = %if.end58
	br i1 undef, label %if.then71, label %if.end72

if.then71:		; preds = %if.end65
	ret i32 1

if.end72:		; preds = %if.end65
	br i1 undef, label %if.then83, label %if.end84

if.then83:		; preds = %if.end72
	ret i32 1

if.end84:		; preds = %if.end72
	br i1 undef, label %if.then101, label %if.end102

if.then101:		; preds = %if.end84
	ret i32 1

if.end102:		; preds = %if.end84
	br i1 undef, label %if.then113, label %if.end114

if.then113:		; preds = %if.end102
	ret i32 1

if.end114:		; preds = %if.end102
	br i1 undef, label %if.then209, label %if.end210

if.then209:		; preds = %if.end114
	ret i32 1

if.end210:		; preds = %if.end114
	br i1 undef, label %if.then219, label %if.end220

if.then219:		; preds = %if.end210
	ret i32 1

if.end220:		; preds = %if.end210
	br i1 undef, label %if.end243, label %lor.lhs.false230

lor.lhs.false230:		; preds = %if.end220
	unreachable

if.end243:		; preds = %if.end220
	br i1 undef, label %if.then249, label %if.end250

if.then249:		; preds = %if.end243
	ret i32 1

if.end250:		; preds = %if.end243
	br i1 undef, label %if.end261, label %if.then260

if.then260:		; preds = %if.end250
	ret i32 1

if.end261:		; preds = %if.end250
	br i1 undef, label %if.then270, label %if.end271

if.then270:		; preds = %if.end261
	ret i32 1

if.end271:		; preds = %if.end261
	%call.i = call i32 @arc4random() nounwind		; <i32> [#uses=1]
	%rem.i = urem i32 %call.i, 16383		; <i32> [#uses=1]
	%rem1.i = trunc i32 %rem.i to i16		; <i16> [#uses=1]
	%conv2.i = or i16 %rem1.i, -16384		; <i16> [#uses=1]
	%0 = call i16 asm "xchgb ${0:h}, ${0:b}", "=Q,0,~{dirflag},~{fpsr},~{flags}"(i16 %conv2.i) nounwind		; <i16> [#uses=1]
	store i16 %0, i16* undef
	%call281 = call i32 @bind(i32 undef, %struct.sockaddr* undef, i32 16) nounwind		; <i32> [#uses=0]
	unreachable
}

declare i32 @bind(i32, %struct.sockaddr*, i32)

declare i32 @arc4random()