Lines Matching refs:i1
7 define zeroext i1 @saddo1.i32(i32 %v1, i32 %v2, i32* %res) {
12 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2)
13 %val = extractvalue {i32, i1} %t, 0
14 %obit = extractvalue {i32, i1} %t, 1
16 ret i1 %obit
20 define zeroext i1 @saddo2.i32(i32 %v1, i32* %res) {
25 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 4)
26 %val = extractvalue {i32, i1} %t, 0
27 %obit = extractvalue {i32, i1} %t, 1
29 ret i1 %obit
33 define zeroext i1 @saddo3.i32(i32 %v1, i32* %res) {
38 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 -4)
39 %val = extractvalue {i32, i1} %t, 0
40 %obit = extractvalue {i32, i1} %t, 1
42 ret i1 %obit
46 define zeroext i1 @saddo4.i32(i32 %v1, i32* %res) {
51 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 16777215)
52 %val = extractvalue {i32, i1} %t, 0
53 %obit = extractvalue {i32, i1} %t, 1
55 ret i1 %obit
59 define zeroext i1 @saddo5.i32(i32 %v1, i32 %v2, i32* %res) {
65 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %lsl)
66 %val = extractvalue {i32, i1} %t, 0
67 %obit = extractvalue {i32, i1} %t, 1
69 ret i1 %obit
72 define zeroext i1 @saddo1.i64(i64 %v1, i64 %v2, i64* %res) {
77 %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %v1, i64 %v2)
78 %val = extractvalue {i64, i1} %t, 0
79 %obit = extractvalue {i64, i1} %t, 1
81 ret i1 %obit
84 define zeroext i1 @saddo2.i64(i64 %v1, i64* %res) {
89 %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %v1, i64 4)
90 %val = extractvalue {i64, i1} %t, 0
91 %obit = extractvalue {i64, i1} %t, 1
93 ret i1 %obit
96 define zeroext i1 @saddo3.i64(i64 %v1, i64* %res) {
101 %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %v1, i64 -4)
102 %val = extractvalue {i64, i1} %t, 0
103 %obit = extractvalue {i64, i1} %t, 1
105 ret i1 %obit
108 define zeroext i1 @uaddo.i32(i32 %v1, i32 %v2, i32* %res) {
113 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2)
114 %val = extractvalue {i32, i1} %t, 0
115 %obit = extractvalue {i32, i1} %t, 1
117 ret i1 %obit
120 define zeroext i1 @uaddo.i64(i64 %v1, i64 %v2, i64* %res) {
125 %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %v1, i64 %v2)
126 %val = extractvalue {i64, i1} %t, 0
127 %obit = extractvalue {i64, i1} %t, 1
129 ret i1 %obit
132 define zeroext i1 @ssubo1.i32(i32 %v1, i32 %v2, i32* %res) {
137 %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %v1, i32 %v2)
138 %val = extractvalue {i32, i1} %t, 0
139 %obit = extractvalue {i32, i1} %t, 1
141 ret i1 %obit
144 define zeroext i1 @ssubo2.i32(i32 %v1, i32* %res) {
149 %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %v1, i32 -4)
150 %val = extractvalue {i32, i1} %t, 0
151 %obit = extractvalue {i32, i1} %t, 1
153 ret i1 %obit
156 define zeroext i1 @ssubo.i64(i64 %v1, i64 %v2, i64* %res) {
161 %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %v1, i64 %v2)
162 %val = extractvalue {i64, i1} %t, 0
163 %obit = extractvalue {i64, i1} %t, 1
165 ret i1 %obit
168 define zeroext i1 @usubo.i32(i32 %v1, i32 %v2, i32* %res) {
173 %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %v1, i32 %v2)
174 %val = extractvalue {i32, i1} %t, 0
175 %obit = extractvalue {i32, i1} %t, 1
177 ret i1 %obit
180 define zeroext i1 @usubo.i64(i64 %v1, i64 %v2, i64* %res) {
185 %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %v1, i64 %v2)
186 %val = extractvalue {i64, i1} %t, 0
187 %obit = extractvalue {i64, i1} %t, 1
189 ret i1 %obit
192 define zeroext i1 @smulo.i32(i32 %v1, i32 %v2, i32* %res) {
199 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2)
200 %val = extractvalue {i32, i1} %t, 0
201 %obit = extractvalue {i32, i1} %t, 1
203 ret i1 %obit
206 define zeroext i1 @smulo.i64(i64 %v1, i64 %v2, i64* %res) {
213 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2)
214 %val = extractvalue {i64, i1} %t, 0
215 %obit = extractvalue {i64, i1} %t, 1
217 ret i1 %obit
220 define zeroext i1 @smulo2.i64(i64 %v1, i64* %res) {
225 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 2)
226 %val = extractvalue {i64, i1} %t, 0
227 %obit = extractvalue {i64, i1} %t, 1
229 ret i1 %obit
232 define zeroext i1 @umulo.i32(i32 %v1, i32 %v2, i32* %res) {
238 %t = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %v1, i32 %v2)
239 %val = extractvalue {i32, i1} %t, 0
240 %obit = extractvalue {i32, i1} %t, 1
242 ret i1 %obit
245 define zeroext i1 @umulo.i64(i64 %v1, i64 %v2, i64* %res) {
251 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 %v2)
252 %val = extractvalue {i64, i1} %t, 0
253 %obit = extractvalue {i64, i1} %t, 1
255 ret i1 %obit
258 define zeroext i1 @umulo2.i64(i64 %v1, i64* %res) {
263 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 2)
264 %val = extractvalue {i64, i1} %t, 0
265 %obit = extractvalue {i64, i1} %t, 1
267 ret i1 %obit
279 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2)
280 %obit = extractvalue {i32, i1} %t, 1
281 %ret = select i1 %obit, i32 %v1, i32 %v2
290 %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %v1, i64 %v2)
291 %obit = extractvalue {i64, i1} %t, 1
292 %ret = select i1 %obit, i64 %v1, i64 %v2
301 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2)
302 %obit = extractvalue {i32, i1} %t, 1
303 %ret = select i1 %obit, i32 %v1, i32 %v2
312 %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %v1, i64 %v2)
313 %obit = extractvalue {i64, i1} %t, 1
314 %ret = select i1 %obit, i64 %v1, i64 %v2
323 %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %v1, i32 %v2)
324 %obit = extractvalue {i32, i1} %t, 1
325 %ret = select i1 %obit, i32 %v1, i32 %v2
334 %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %v1, i64 %v2)
335 %obit = extractvalue {i64, i1} %t, 1
336 %ret = select i1 %obit, i64 %v1, i64 %v2
345 %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %v1, i32 %v2)
346 %obit = extractvalue {i32, i1} %t, 1
347 %ret = select i1 %obit, i32 %v1, i32 %v2
356 %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %v1, i64 %v2)
357 %obit = extractvalue {i64, i1} %t, 1
358 %ret = select i1 %obit, i64 %v1, i64 %v2
369 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2)
370 %obit = extractvalue {i32, i1} %t, 1
371 %ret = select i1 %obit, i32 %v1, i32 %v2
382 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2)
383 %obit = extractvalue {i64, i1} %t, 1
384 %ret = select i1 %obit, i64 %v1, i64 %v2
394 %t = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %v1, i32 %v2)
395 %obit = extractvalue {i32, i1} %t, 1
396 %ret = select i1 %obit, i32 %v1, i32 %v2
406 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 %v2)
407 %obit = extractvalue {i64, i1} %t, 1
408 %ret = select i1 %obit, i64 %v1, i64 %v2
416 define zeroext i1 @saddo.br.i32(i32 %v1, i32 %v2) {
421 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %v1, i32 %v2)
422 %val = extractvalue {i32, i1} %t, 0
423 %obit = extractvalue {i32, i1} %t, 1
424 br i1 %obit, label %overflow, label %continue
427 ret i1 false
430 ret i1 true
433 define zeroext i1 @saddo.br.i64(i64 %v1, i64 %v2) {
438 %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %v1, i64 %v2)
439 %val = extractvalue {i64, i1} %t, 0
440 %obit = extractvalue {i64, i1} %t, 1
441 br i1 %obit, label %overflow, label %continue
444 ret i1 false
447 ret i1 true
450 define zeroext i1 @uaddo.br.i32(i32 %v1, i32 %v2) {
455 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %v1, i32 %v2)
456 %val = extractvalue {i32, i1} %t, 0
457 %obit = extractvalue {i32, i1} %t, 1
458 br i1 %obit, label %overflow, label %continue
461 ret i1 false
464 ret i1 true
467 define zeroext i1 @uaddo.br.i64(i64 %v1, i64 %v2) {
472 %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %v1, i64 %v2)
473 %val = extractvalue {i64, i1} %t, 0
474 %obit = extractvalue {i64, i1} %t, 1
475 br i1 %obit, label %overflow, label %continue
478 ret i1 false
481 ret i1 true
484 define zeroext i1 @ssubo.br.i32(i32 %v1, i32 %v2) {
489 %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %v1, i32 %v2)
490 %val = extractvalue {i32, i1} %t, 0
491 %obit = extractvalue {i32, i1} %t, 1
492 br i1 %obit, label %overflow, label %continue
495 ret i1 false
498 ret i1 true
501 define zeroext i1 @ssubo.br.i64(i64 %v1, i64 %v2) {
506 %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %v1, i64 %v2)
507 %val = extractvalue {i64, i1} %t, 0
508 %obit = extractvalue {i64, i1} %t, 1
509 br i1 %obit, label %overflow, label %continue
512 ret i1 false
515 ret i1 true
518 define zeroext i1 @usubo.br.i32(i32 %v1, i32 %v2) {
523 %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %v1, i32 %v2)
524 %val = extractvalue {i32, i1} %t, 0
525 %obit = extractvalue {i32, i1} %t, 1
526 br i1 %obit, label %overflow, label %continue
529 ret i1 false
532 ret i1 true
535 define zeroext i1 @usubo.br.i64(i64 %v1, i64 %v2) {
540 %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %v1, i64 %v2)
541 %val = extractvalue {i64, i1} %t, 0
542 %obit = extractvalue {i64, i1} %t, 1
543 br i1 %obit, label %overflow, label %continue
546 ret i1 false
549 ret i1 true
552 define zeroext i1 @smulo.br.i32(i32 %v1, i32 %v2) {
559 %t = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %v1, i32 %v2)
560 %val = extractvalue {i32, i1} %t, 0
561 %obit = extractvalue {i32, i1} %t, 1
562 br i1 %obit, label %overflow, label %continue
565 ret i1 false
568 ret i1 true
571 define zeroext i1 @smulo.br.i64(i64 %v1, i64 %v2) {
578 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 %v2)
579 %val = extractvalue {i64, i1} %t, 0
580 %obit = extractvalue {i64, i1} %t, 1
581 br i1 %obit, label %overflow, label %continue
584 ret i1 false
587 ret i1 true
590 define zeroext i1 @smulo2.br.i64(i64 %v1) {
595 %t = call {i64, i1} @llvm.smul.with.overflow.i64(i64 %v1, i64 2)
596 %val = extractvalue {i64, i1} %t, 0
597 %obit = extractvalue {i64, i1} %t, 1
598 br i1 %obit, label %overflow, label %continue
601 ret i1 false
604 ret i1 true
607 define zeroext i1 @umulo.br.i32(i32 %v1, i32 %v2) {
613 %t = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %v1, i32 %v2)
614 %val = extractvalue {i32, i1} %t, 0
615 %obit = extractvalue {i32, i1} %t, 1
616 br i1 %obit, label %overflow, label %continue
619 ret i1 false
622 ret i1 true
625 define zeroext i1 @umulo.br.i64(i64 %v1, i64 %v2) {
630 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 %v2)
631 %val = extractvalue {i64, i1} %t, 0
632 %obit = extractvalue {i64, i1} %t, 1
633 br i1 %obit, label %overflow, label %continue
636 ret i1 false
639 ret i1 true
642 define zeroext i1 @umulo2.br.i64(i64 %v1) {
647 %t = call {i64, i1} @llvm.umul.with.overflow.i64(i64 %v1, i64 2)
648 %val = extractvalue {i64, i1} %t, 0
649 %obit = extractvalue {i64, i1} %t, 1
650 br i1 %obit, label %overflow, label %continue
653 ret i1 false
656 ret i1 true
659 declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32) nounwind readnone
660 declare {i64, i1} @llvm.sadd.with.overflow.i64(i64, i64) nounwind readnone
661 declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32) nounwind readnone
662 declare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64) nounwind readnone
663 declare {i32, i1} @llvm.ssub.with.overflow.i32(i32, i32) nounwind readnone
664 declare {i64, i1} @llvm.ssub.with.overflow.i64(i64, i64) nounwind readnone
665 declare {i32, i1} @llvm.usub.with.overflow.i32(i32, i32) nounwind readnone
666 declare {i64, i1} @llvm.usub.with.overflow.i64(i64, i64) nounwind readnone
667 declare {i32, i1} @llvm.smul.with.overflow.i32(i32, i32) nounwind readnone
668 declare {i64, i1} @llvm.smul.with.overflow.i64(i64, i64) nounwind readnone
669 declare {i32, i1} @llvm.umul.with.overflow.i32(i32, i32) nounwind readnone
670 declare {i64, i1} @llvm.umul.with.overflow.i64(i64, i64) nounwind readnone