xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2009-07-06-TwoAddrAssert.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mtriple=x86_64-unknown-freebsd7.2
2*9880d681SAndroid Build Coastguard Worker; PR4478
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker	%struct.sockaddr = type <{ i8, i8, [14 x i8] }>
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine i32 @main(i32 %argc, i8** %argv) nounwind {
7*9880d681SAndroid Build Coastguard Workerentry:
8*9880d681SAndroid Build Coastguard Worker	br label %while.cond
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerwhile.cond:		; preds = %sw.bb6, %entry
11*9880d681SAndroid Build Coastguard Worker	switch i32 undef, label %sw.default [
12*9880d681SAndroid Build Coastguard Worker		i32 -1, label %while.end
13*9880d681SAndroid Build Coastguard Worker		i32 119, label %sw.bb6
14*9880d681SAndroid Build Coastguard Worker	]
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Workersw.bb6:		; preds = %while.cond
17*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then, label %while.cond
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerif.then:		; preds = %sw.bb6
20*9880d681SAndroid Build Coastguard Worker	ret i32 1
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workersw.default:		; preds = %while.cond
23*9880d681SAndroid Build Coastguard Worker	ret i32 1
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerwhile.end:		; preds = %while.cond
26*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then15, label %if.end16
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerif.then15:		; preds = %while.end
29*9880d681SAndroid Build Coastguard Worker	ret i32 1
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerif.end16:		; preds = %while.end
32*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %lor.lhs.false, label %if.then21
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerlor.lhs.false:		; preds = %if.end16
35*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.end22, label %if.then21
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workerif.then21:		; preds = %lor.lhs.false, %if.end16
38*9880d681SAndroid Build Coastguard Worker	ret i32 1
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Workerif.end22:		; preds = %lor.lhs.false
41*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %lor.lhs.false27, label %if.then51
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Workerlor.lhs.false27:		; preds = %if.end22
44*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %lor.lhs.false39, label %if.then51
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Workerlor.lhs.false39:		; preds = %lor.lhs.false27
47*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.end52, label %if.then51
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Workerif.then51:		; preds = %lor.lhs.false39, %lor.lhs.false27, %if.end22
50*9880d681SAndroid Build Coastguard Worker	ret i32 1
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Workerif.end52:		; preds = %lor.lhs.false39
53*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then57, label %if.end58
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Workerif.then57:		; preds = %if.end52
56*9880d681SAndroid Build Coastguard Worker	ret i32 1
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Workerif.end58:		; preds = %if.end52
59*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then64, label %if.end65
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Workerif.then64:		; preds = %if.end58
62*9880d681SAndroid Build Coastguard Worker	ret i32 1
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Workerif.end65:		; preds = %if.end58
65*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then71, label %if.end72
66*9880d681SAndroid Build Coastguard Worker
67*9880d681SAndroid Build Coastguard Workerif.then71:		; preds = %if.end65
68*9880d681SAndroid Build Coastguard Worker	ret i32 1
69*9880d681SAndroid Build Coastguard Worker
70*9880d681SAndroid Build Coastguard Workerif.end72:		; preds = %if.end65
71*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then83, label %if.end84
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Workerif.then83:		; preds = %if.end72
74*9880d681SAndroid Build Coastguard Worker	ret i32 1
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Workerif.end84:		; preds = %if.end72
77*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then101, label %if.end102
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Workerif.then101:		; preds = %if.end84
80*9880d681SAndroid Build Coastguard Worker	ret i32 1
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Workerif.end102:		; preds = %if.end84
83*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then113, label %if.end114
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Workerif.then113:		; preds = %if.end102
86*9880d681SAndroid Build Coastguard Worker	ret i32 1
87*9880d681SAndroid Build Coastguard Worker
88*9880d681SAndroid Build Coastguard Workerif.end114:		; preds = %if.end102
89*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then209, label %if.end210
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Workerif.then209:		; preds = %if.end114
92*9880d681SAndroid Build Coastguard Worker	ret i32 1
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Workerif.end210:		; preds = %if.end114
95*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then219, label %if.end220
96*9880d681SAndroid Build Coastguard Worker
97*9880d681SAndroid Build Coastguard Workerif.then219:		; preds = %if.end210
98*9880d681SAndroid Build Coastguard Worker	ret i32 1
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Workerif.end220:		; preds = %if.end210
101*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.end243, label %lor.lhs.false230
102*9880d681SAndroid Build Coastguard Worker
103*9880d681SAndroid Build Coastguard Workerlor.lhs.false230:		; preds = %if.end220
104*9880d681SAndroid Build Coastguard Worker	unreachable
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Workerif.end243:		; preds = %if.end220
107*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then249, label %if.end250
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Workerif.then249:		; preds = %if.end243
110*9880d681SAndroid Build Coastguard Worker	ret i32 1
111*9880d681SAndroid Build Coastguard Worker
112*9880d681SAndroid Build Coastguard Workerif.end250:		; preds = %if.end243
113*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.end261, label %if.then260
114*9880d681SAndroid Build Coastguard Worker
115*9880d681SAndroid Build Coastguard Workerif.then260:		; preds = %if.end250
116*9880d681SAndroid Build Coastguard Worker	ret i32 1
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Workerif.end261:		; preds = %if.end250
119*9880d681SAndroid Build Coastguard Worker	br i1 undef, label %if.then270, label %if.end271
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Workerif.then270:		; preds = %if.end261
122*9880d681SAndroid Build Coastguard Worker	ret i32 1
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Workerif.end271:		; preds = %if.end261
125*9880d681SAndroid Build Coastguard Worker	%call.i = call i32 @arc4random() nounwind		; <i32> [#uses=1]
126*9880d681SAndroid Build Coastguard Worker	%rem.i = urem i32 %call.i, 16383		; <i32> [#uses=1]
127*9880d681SAndroid Build Coastguard Worker	%rem1.i = trunc i32 %rem.i to i16		; <i16> [#uses=1]
128*9880d681SAndroid Build Coastguard Worker	%conv2.i = or i16 %rem1.i, -16384		; <i16> [#uses=1]
129*9880d681SAndroid Build Coastguard Worker	%0 = call i16 asm "xchgb ${0:h}, ${0:b}", "=Q,0,~{dirflag},~{fpsr},~{flags}"(i16 %conv2.i) nounwind		; <i16> [#uses=1]
130*9880d681SAndroid Build Coastguard Worker	store i16 %0, i16* undef
131*9880d681SAndroid Build Coastguard Worker	%call281 = call i32 @bind(i32 undef, %struct.sockaddr* undef, i32 16) nounwind		; <i32> [#uses=0]
132*9880d681SAndroid Build Coastguard Worker	unreachable
133*9880d681SAndroid Build Coastguard Worker}
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Workerdeclare i32 @bind(i32, %struct.sockaddr*, i32)
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Workerdeclare i32 @arc4random()
138