xref: /aosp_15_r20/external/llvm/test/Transforms/InstSimplify/undef.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by update_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: opt -instsimplify -S < %s | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine i64 @test0() {
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test0(
6*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
7*9880d681SAndroid Build Coastguard Worker;
8*9880d681SAndroid Build Coastguard Worker  %r = mul i64 undef, undef
9*9880d681SAndroid Build Coastguard Worker  ret i64 %r
10*9880d681SAndroid Build Coastguard Worker}
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerdefine i64 @test1() {
13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test1(
14*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
15*9880d681SAndroid Build Coastguard Worker;
16*9880d681SAndroid Build Coastguard Worker  %r = mul i64 3, undef
17*9880d681SAndroid Build Coastguard Worker  ret i64 %r
18*9880d681SAndroid Build Coastguard Worker}
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerdefine i64 @test2() {
21*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test2(
22*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
23*9880d681SAndroid Build Coastguard Worker;
24*9880d681SAndroid Build Coastguard Worker  %r = mul i64 undef, 3
25*9880d681SAndroid Build Coastguard Worker  ret i64 %r
26*9880d681SAndroid Build Coastguard Worker}
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerdefine i64 @test3() {
29*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test3(
30*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 0
31*9880d681SAndroid Build Coastguard Worker;
32*9880d681SAndroid Build Coastguard Worker  %r = mul i64 undef, 6
33*9880d681SAndroid Build Coastguard Worker  ret i64 %r
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerdefine i64 @test4() {
37*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test4(
38*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 0
39*9880d681SAndroid Build Coastguard Worker;
40*9880d681SAndroid Build Coastguard Worker  %r = mul i64 6, undef
41*9880d681SAndroid Build Coastguard Worker  ret i64 %r
42*9880d681SAndroid Build Coastguard Worker}
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workerdefine i64 @test5() {
45*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test5(
46*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
47*9880d681SAndroid Build Coastguard Worker;
48*9880d681SAndroid Build Coastguard Worker  %r = and i64 undef, undef
49*9880d681SAndroid Build Coastguard Worker  ret i64 %r
50*9880d681SAndroid Build Coastguard Worker}
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Workerdefine i64 @test6() {
53*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test6(
54*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
55*9880d681SAndroid Build Coastguard Worker;
56*9880d681SAndroid Build Coastguard Worker  %r = or i64 undef, undef
57*9880d681SAndroid Build Coastguard Worker  ret i64 %r
58*9880d681SAndroid Build Coastguard Worker}
59*9880d681SAndroid Build Coastguard Worker
60*9880d681SAndroid Build Coastguard Workerdefine i64 @test7() {
61*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test7(
62*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
63*9880d681SAndroid Build Coastguard Worker;
64*9880d681SAndroid Build Coastguard Worker  %r = udiv i64 undef, 1
65*9880d681SAndroid Build Coastguard Worker  ret i64 %r
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerdefine i64 @test8() {
69*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test8(
70*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
71*9880d681SAndroid Build Coastguard Worker;
72*9880d681SAndroid Build Coastguard Worker  %r = sdiv i64 undef, 1
73*9880d681SAndroid Build Coastguard Worker  ret i64 %r
74*9880d681SAndroid Build Coastguard Worker}
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Workerdefine i64 @test9() {
77*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test9(
78*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 0
79*9880d681SAndroid Build Coastguard Worker;
80*9880d681SAndroid Build Coastguard Worker  %r = urem i64 undef, 1
81*9880d681SAndroid Build Coastguard Worker  ret i64 %r
82*9880d681SAndroid Build Coastguard Worker}
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Workerdefine i64 @test10() {
85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test10(
86*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 0
87*9880d681SAndroid Build Coastguard Worker;
88*9880d681SAndroid Build Coastguard Worker  %r = srem i64 undef, 1
89*9880d681SAndroid Build Coastguard Worker  ret i64 %r
90*9880d681SAndroid Build Coastguard Worker}
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Workerdefine i64 @test11() {
93*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test11(
94*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
95*9880d681SAndroid Build Coastguard Worker;
96*9880d681SAndroid Build Coastguard Worker  %r = shl i64 undef, undef
97*9880d681SAndroid Build Coastguard Worker  ret i64 %r
98*9880d681SAndroid Build Coastguard Worker}
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Workerdefine i64 @test11b(i64 %a) {
101*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test11b(
102*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
103*9880d681SAndroid Build Coastguard Worker;
104*9880d681SAndroid Build Coastguard Worker  %r = shl i64 %a, undef
105*9880d681SAndroid Build Coastguard Worker  ret i64 %r
106*9880d681SAndroid Build Coastguard Worker}
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Workerdefine i64 @test12() {
109*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test12(
110*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
111*9880d681SAndroid Build Coastguard Worker;
112*9880d681SAndroid Build Coastguard Worker  %r = ashr i64 undef, undef
113*9880d681SAndroid Build Coastguard Worker  ret i64 %r
114*9880d681SAndroid Build Coastguard Worker}
115*9880d681SAndroid Build Coastguard Worker
116*9880d681SAndroid Build Coastguard Workerdefine i64 @test12b(i64 %a) {
117*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test12b(
118*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
119*9880d681SAndroid Build Coastguard Worker;
120*9880d681SAndroid Build Coastguard Worker  %r = ashr i64 %a, undef
121*9880d681SAndroid Build Coastguard Worker  ret i64 %r
122*9880d681SAndroid Build Coastguard Worker}
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Workerdefine i64 @test13() {
125*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test13(
126*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
127*9880d681SAndroid Build Coastguard Worker;
128*9880d681SAndroid Build Coastguard Worker  %r = lshr i64 undef, undef
129*9880d681SAndroid Build Coastguard Worker  ret i64 %r
130*9880d681SAndroid Build Coastguard Worker}
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Workerdefine i64 @test13b(i64 %a) {
133*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test13b(
134*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
135*9880d681SAndroid Build Coastguard Worker;
136*9880d681SAndroid Build Coastguard Worker  %r = lshr i64 %a, undef
137*9880d681SAndroid Build Coastguard Worker  ret i64 %r
138*9880d681SAndroid Build Coastguard Worker}
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Workerdefine i1 @test14() {
141*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test14(
142*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 undef
143*9880d681SAndroid Build Coastguard Worker;
144*9880d681SAndroid Build Coastguard Worker  %r = icmp slt i64 undef, undef
145*9880d681SAndroid Build Coastguard Worker  ret i1 %r
146*9880d681SAndroid Build Coastguard Worker}
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Workerdefine i1 @test15() {
149*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test15(
150*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i1 undef
151*9880d681SAndroid Build Coastguard Worker;
152*9880d681SAndroid Build Coastguard Worker  %r = icmp ult i64 undef, undef
153*9880d681SAndroid Build Coastguard Worker  ret i1 %r
154*9880d681SAndroid Build Coastguard Worker}
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Workerdefine i64 @test16(i64 %a) {
157*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test16(
158*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
159*9880d681SAndroid Build Coastguard Worker;
160*9880d681SAndroid Build Coastguard Worker  %r = select i1 undef, i64 %a, i64 undef
161*9880d681SAndroid Build Coastguard Worker  ret i64 %r
162*9880d681SAndroid Build Coastguard Worker}
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Workerdefine i64 @test17(i64 %a) {
165*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test17(
166*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i64 undef
167*9880d681SAndroid Build Coastguard Worker;
168*9880d681SAndroid Build Coastguard Worker  %r = select i1 undef, i64 undef, i64 %a
169*9880d681SAndroid Build Coastguard Worker  ret i64 %r
170*9880d681SAndroid Build Coastguard Worker}
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Workerdefine i64 @test18(i64 %a) {
173*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test18(
174*9880d681SAndroid Build Coastguard Worker; CHECK:         [[R:%.*]] = call i64 undef(i64 %a)
175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i64 undef
176*9880d681SAndroid Build Coastguard Worker;
177*9880d681SAndroid Build Coastguard Worker  %r = call i64 (i64) undef(i64 %a)
178*9880d681SAndroid Build Coastguard Worker  ret i64 %r
179*9880d681SAndroid Build Coastguard Worker}
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Workerdefine <4 x i8> @test19(<4 x i8> %a) {
182*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test19(
183*9880d681SAndroid Build Coastguard Worker; CHECK:         ret <4 x i8> undef
184*9880d681SAndroid Build Coastguard Worker;
185*9880d681SAndroid Build Coastguard Worker  %b = shl <4 x i8> %a, <i8 8, i8 9, i8 undef, i8 -1>
186*9880d681SAndroid Build Coastguard Worker  ret <4 x i8> %b
187*9880d681SAndroid Build Coastguard Worker}
188*9880d681SAndroid Build Coastguard Worker
189*9880d681SAndroid Build Coastguard Workerdefine i32 @test20(i32 %a) {
190*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test20(
191*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
192*9880d681SAndroid Build Coastguard Worker;
193*9880d681SAndroid Build Coastguard Worker  %b = udiv i32 %a, 0
194*9880d681SAndroid Build Coastguard Worker  ret i32 %b
195*9880d681SAndroid Build Coastguard Worker}
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Workerdefine i32 @test21(i32 %a) {
198*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test21(
199*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
200*9880d681SAndroid Build Coastguard Worker;
201*9880d681SAndroid Build Coastguard Worker  %b = sdiv i32 %a, 0
202*9880d681SAndroid Build Coastguard Worker  ret i32 %b
203*9880d681SAndroid Build Coastguard Worker}
204*9880d681SAndroid Build Coastguard Worker
205*9880d681SAndroid Build Coastguard Workerdefine i32 @test22(i32 %a) {
206*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test22(
207*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
208*9880d681SAndroid Build Coastguard Worker;
209*9880d681SAndroid Build Coastguard Worker  %b = ashr exact i32 undef, %a
210*9880d681SAndroid Build Coastguard Worker  ret i32 %b
211*9880d681SAndroid Build Coastguard Worker}
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Workerdefine i32 @test23(i32 %a) {
214*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test23(
215*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
216*9880d681SAndroid Build Coastguard Worker;
217*9880d681SAndroid Build Coastguard Worker  %b = lshr exact i32 undef, %a
218*9880d681SAndroid Build Coastguard Worker  ret i32 %b
219*9880d681SAndroid Build Coastguard Worker}
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Workerdefine i32 @test24() {
222*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test24(
223*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
224*9880d681SAndroid Build Coastguard Worker;
225*9880d681SAndroid Build Coastguard Worker  %b = udiv i32 undef, 0
226*9880d681SAndroid Build Coastguard Worker  ret i32 %b
227*9880d681SAndroid Build Coastguard Worker}
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Workerdefine i32 @test25() {
230*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test25(
231*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
232*9880d681SAndroid Build Coastguard Worker;
233*9880d681SAndroid Build Coastguard Worker  %b = lshr i32 0, undef
234*9880d681SAndroid Build Coastguard Worker  ret i32 %b
235*9880d681SAndroid Build Coastguard Worker}
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Workerdefine i32 @test26() {
238*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test26(
239*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
240*9880d681SAndroid Build Coastguard Worker;
241*9880d681SAndroid Build Coastguard Worker  %b = ashr i32 0, undef
242*9880d681SAndroid Build Coastguard Worker  ret i32 %b
243*9880d681SAndroid Build Coastguard Worker}
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Workerdefine i32 @test27() {
246*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test27(
247*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
248*9880d681SAndroid Build Coastguard Worker;
249*9880d681SAndroid Build Coastguard Worker  %b = shl i32 0, undef
250*9880d681SAndroid Build Coastguard Worker  ret i32 %b
251*9880d681SAndroid Build Coastguard Worker}
252*9880d681SAndroid Build Coastguard Worker
253*9880d681SAndroid Build Coastguard Workerdefine i32 @test28(i32 %a) {
254*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test28(
255*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
256*9880d681SAndroid Build Coastguard Worker;
257*9880d681SAndroid Build Coastguard Worker  %b = shl nsw i32 undef, %a
258*9880d681SAndroid Build Coastguard Worker  ret i32 %b
259*9880d681SAndroid Build Coastguard Worker}
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Workerdefine i32 @test29(i32 %a) {
262*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test29(
263*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
264*9880d681SAndroid Build Coastguard Worker;
265*9880d681SAndroid Build Coastguard Worker  %b = shl nuw i32 undef, %a
266*9880d681SAndroid Build Coastguard Worker  ret i32 %b
267*9880d681SAndroid Build Coastguard Worker}
268*9880d681SAndroid Build Coastguard Worker
269*9880d681SAndroid Build Coastguard Workerdefine i32 @test30(i32 %a) {
270*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test30(
271*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
272*9880d681SAndroid Build Coastguard Worker;
273*9880d681SAndroid Build Coastguard Worker  %b = shl nsw nuw i32 undef, %a
274*9880d681SAndroid Build Coastguard Worker  ret i32 %b
275*9880d681SAndroid Build Coastguard Worker}
276*9880d681SAndroid Build Coastguard Worker
277*9880d681SAndroid Build Coastguard Workerdefine i32 @test31(i32 %a) {
278*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test31(
279*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 0
280*9880d681SAndroid Build Coastguard Worker;
281*9880d681SAndroid Build Coastguard Worker  %b = shl i32 undef, %a
282*9880d681SAndroid Build Coastguard Worker  ret i32 %b
283*9880d681SAndroid Build Coastguard Worker}
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Workerdefine i32 @test32(i32 %a) {
286*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test32(
287*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
288*9880d681SAndroid Build Coastguard Worker;
289*9880d681SAndroid Build Coastguard Worker  %b = shl i32 undef, 0
290*9880d681SAndroid Build Coastguard Worker  ret i32 %b
291*9880d681SAndroid Build Coastguard Worker}
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Workerdefine i32 @test33(i32 %a) {
294*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test33(
295*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
296*9880d681SAndroid Build Coastguard Worker;
297*9880d681SAndroid Build Coastguard Worker  %b = ashr i32 undef, 0
298*9880d681SAndroid Build Coastguard Worker  ret i32 %b
299*9880d681SAndroid Build Coastguard Worker}
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Workerdefine i32 @test34(i32 %a) {
302*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test34(
303*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
304*9880d681SAndroid Build Coastguard Worker;
305*9880d681SAndroid Build Coastguard Worker  %b = lshr i32 undef, 0
306*9880d681SAndroid Build Coastguard Worker  ret i32 %b
307*9880d681SAndroid Build Coastguard Worker}
308*9880d681SAndroid Build Coastguard Worker
309*9880d681SAndroid Build Coastguard Workerdefine i32 @test35(<4 x i32> %V) {
310*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test35(
311*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
312*9880d681SAndroid Build Coastguard Worker;
313*9880d681SAndroid Build Coastguard Worker  %b = extractelement <4 x i32> %V, i32 4
314*9880d681SAndroid Build Coastguard Worker  ret i32 %b
315*9880d681SAndroid Build Coastguard Worker}
316*9880d681SAndroid Build Coastguard Worker
317*9880d681SAndroid Build Coastguard Workerdefine i32 @test36(i32 %V) {
318*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test36(
319*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
320*9880d681SAndroid Build Coastguard Worker;
321*9880d681SAndroid Build Coastguard Worker  %b = extractelement <4 x i32> undef, i32 %V
322*9880d681SAndroid Build Coastguard Worker  ret i32 %b
323*9880d681SAndroid Build Coastguard Worker}
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Workerdefine i32 @test37() {
326*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test37(
327*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
328*9880d681SAndroid Build Coastguard Worker;
329*9880d681SAndroid Build Coastguard Worker  %b = udiv i32 undef, undef
330*9880d681SAndroid Build Coastguard Worker  ret i32 %b
331*9880d681SAndroid Build Coastguard Worker}
332*9880d681SAndroid Build Coastguard Worker
333*9880d681SAndroid Build Coastguard Workerdefine i32 @test38(i32 %a) {
334*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test38(
335*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
336*9880d681SAndroid Build Coastguard Worker;
337*9880d681SAndroid Build Coastguard Worker  %b = udiv i32 %a, undef
338*9880d681SAndroid Build Coastguard Worker  ret i32 %b
339*9880d681SAndroid Build Coastguard Worker}
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Workerdefine i32 @test39() {
342*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test39(
343*9880d681SAndroid Build Coastguard Worker; CHECK:         ret i32 undef
344*9880d681SAndroid Build Coastguard Worker;
345*9880d681SAndroid Build Coastguard Worker  %b = udiv i32 0, undef
346*9880d681SAndroid Build Coastguard Worker  ret i32 %b
347*9880d681SAndroid Build Coastguard Worker}
348