xref: /llvm-project/llvm/test/CodeGen/PowerPC/mi-peepholes-trap-opt.mir (revision 86e77cdb081ff40b8b46099c935f8d343e26425e)
1# RUN: llc -mtriple powerpc64le-unknown-linux-gnu -mcpu=pwr8 -x mir < %s \
2# RUN:   -verify-machineinstrs -start-before=ppc-mi-peepholes \
3# RUN:   -ppc-opt-conditional-trap | FileCheck %s
4
5---
6name:            conditional_trap_opt_reg_implicit_def
7alignment:       16
8tracksRegLiveness: true
9body:             |
10  bb.0.entry:
11    %0:gprc = IMPLICIT_DEF
12    %1:gprc = IMPLICIT_DEF
13    %2:g8rc = IMPLICIT_DEF
14    %3:g8rc = IMPLICIT_DEF
15    TW 8, %0, %1
16    TD 8, %2, %3
17    TWI 24, %0, 0
18    TDI 24, %2, 0
19    BLR8 implicit $lr8, implicit $rm
20...
21  # CHECK-LABEL: conditional_trap_opt_reg_implicit_def
22  # CHECK: # %bb.0: # %entry
23  # CHECK-NEXT:  twgt    3, 3
24  # CHECK-NEXT:  tdgt    3, 3
25  # CHECK-NEXT:  twnei   3, 0
26  # CHECK-NEXT:  tdnei   3, 0
27  # CHECK-NEXT:  blr
28
29---
30name:            conditional_trap_opt_int_return
31alignment:       16
32tracksRegLiveness: true
33body:             |
34  bb.0.entry:
35    liveins: $x3
36    %0:g8rc = COPY $x3
37    %1:g8rc = LI8 3
38    %2:g8rc = LI8 0
39    TD 24, %2, %1
40    $x3 = COPY %0
41    BLR8 implicit $lr8, implicit $rm, implicit $x3
42...
43  # CHECK-LABEL: conditional_trap_opt_int_return
44  # CHECK: # %bb.0: # %entry
45  # CHECK-NEXT:  trap
46  # CHECK-NOT:   blr
47
48---
49name:            conditional_trap_opt_TW_31
50alignment:       16
51tracksRegLiveness: true
52body:             |
53  bb.0.entry:
54    %0:gprc = LI 3
55    %1:gprc = LI 0
56    TW 31, %1, %0
57    BLR8 implicit $lr8, implicit $rm
58...
59  # CHECK-LABEL: conditional_trap_opt_TW_31
60  # CHECK: # %bb.0: # %entry
61  # CHECK-NEXT:  trap
62  # CHECK-NOT:   blr
63
64---
65name:            conditional_trap_opt_TW_24
66alignment:       16
67tracksRegLiveness: true
68body:             |
69  bb.0.entry:
70    %0:gprc = LI 3
71    %1:gprc = LI 0
72    TW 24, %1, %0
73    BLR8 implicit $lr8, implicit $rm
74...
75  # CHECK-LABEL: conditional_trap_opt_TW_24
76  # CHECK: # %bb.0: # %entry
77  # CHECK-NEXT:  trap
78  # CHECK-NOT:   blr
79
80---
81name:            conditional_trap_opt_no_trap_TW_24
82alignment:       16
83tracksRegLiveness: true
84body:             |
85  bb.0.entry:
86    %0:gprc = LI 3
87    %1:gprc = LI 3
88    TW 24, %1, %0
89    BLR8 implicit $lr8, implicit $rm
90...
91  # CHECK-LABEL: conditional_trap_opt_no_trap_TW_24
92  # CHECK: # %bb.0: # %entry
93  # CHECK-NEXT:  blr
94
95---
96name:            conditional_trap_opt_TW_20
97alignment:       16
98tracksRegLiveness: true
99body:             |
100  bb.0.entry:
101    %0:gprc = LI 3
102    %1:gprc = LI 3
103    TW 20, %1, %0
104    BLR8 implicit $lr8, implicit $rm
105...
106  # CHECK-LABEL: conditional_trap_opt_TW_20
107  # CHECK: # %bb.0: # %entry
108  # CHECK-NEXT:  trap
109  # CHECK-NOT:   blr
110
111---
112name:            conditional_trap_opt_no_trap_TW_20
113alignment:       16
114tracksRegLiveness: true
115body:             |
116  bb.0.entry:
117    %0:gprc = LI 3
118    %1:gprc = LI 5
119    TW 20, %1, %0
120    BLR8 implicit $lr8, implicit $rm
121...
122  # CHECK-LABEL: conditional_trap_opt_no_trap_TW_20
123  # CHECK: # %bb.0: # %entry
124  # CHECK-NEXT:  blr
125
126---
127name:            conditional_trap_opt_no_trap_TW_16
128alignment:       16
129tracksRegLiveness: true
130body:             |
131  bb.0.entry:
132    %0:gprc = LI 5
133    %1:gprc = LI 1
134    TW 16, %0, %1
135    BLR8 implicit $lr8, implicit $rm
136...
137  # CHECK-LABEL: conditional_trap_opt_no_trap_TW_16
138  # CHECK: # %bb.0: # %entry
139  # CHECK-NEXT:  blr
140
141---
142name:            conditional_trap_opt_TW_16
143alignment:       16
144tracksRegLiveness: true
145body:             |
146  bb.0.entry:
147    %0:gprc = LI 5
148    %1:gprc = LI 1
149    TW 16, %1, %0
150    TW 16, %0, %1
151    BLR8 implicit $lr8, implicit $rm
152...
153  # CHECK-LABEL: conditional_trap_opt_TW_16
154  # CHECK: # %bb.0: # %entry
155  # CHECK-NEXT:  trap
156  # CHECK-NOT:   blr
157
158---
159name:            conditional_trap_opt_TW_8
160alignment:       16
161tracksRegLiveness: true
162body:             |
163  bb.0.entry:
164    %0:gprc = LI -1
165    %1:gprc = LI 10
166    TW 8, %1, %0
167    TW 8, %0, %1
168    BLR8 implicit $lr8, implicit $rm
169...
170  # CHECK-LABEL: conditional_trap_opt_TW_8
171  # CHECK: # %bb.0: # %entry
172  # CHECK-NEXT:  trap
173  # CHECK-NOT:   blr
174
175---
176name:            conditional_trap_opt_TW_2
177alignment:       16
178tracksRegLiveness: true
179body:             |
180  bb.0.entry:
181    %0:gprc = LI -1
182    %1:gprc = LI 2
183    TW 2, %1, %0
184    TW 2, %0, %1
185    BLR8 implicit $lr8, implicit $rm
186...
187  # CHECK-LABEL: conditional_trap_opt_TW_2
188  # CHECK: # %bb.0: # %entry
189  # CHECK-NEXT:  trap
190  # CHECK-NOT:   blr
191
192---
193name:            conditional_trap_opt_TW_1
194alignment:       16
195tracksRegLiveness: true
196body:             |
197  bb.0.entry:
198    %0:gprc = LI -3
199    %1:gprc = LI 4
200    TW 1, %1, %0
201    TW 1, %0, %1
202    BLR8 implicit $lr8, implicit $rm
203...
204  # CHECK-LABEL: conditional_trap_opt_TW_1
205  # CHECK: # %bb.0: # %entry
206  # CHECK-NEXT:  trap
207  # CHECK-NOT:   blr
208
209---
210name:            conditional_trap_opt_TW_4
211alignment:       16
212tracksRegLiveness: true
213body:             |
214  bb.0.entry:
215    %0:gprc = LI 5
216    %1:gprc = LI 1
217    TW 4, %1, %0
218    TW 4, %1, %1
219    BLR8 implicit $lr8, implicit $rm
220...
221  # CHECK-LABEL: conditional_trap_opt_TW_4
222  # CHECK: # %bb.0: # %entry
223  # CHECK-NEXT:  trap
224  # CHECK-NOT:   blr
225
226---
227name:            conditional_trap_opt_TWI_31
228alignment:       16
229tracksRegLiveness: true
230body:             |
231  bb.0.entry:
232    %0:gprc = LI 3
233    TWI 31, %0, 0
234    BLR8 implicit $lr8, implicit $rm
235...
236  # CHECK-LABEL: conditional_trap_opt_TWI_31
237  # CHECK: # %bb.0: # %entry
238  # CHECK-NEXT:  trap
239  # CHECK-NOT:   blr
240
241---
242name:            conditional_trap_opt_TWI_24
243alignment:       16
244tracksRegLiveness: true
245body:             |
246  bb.0.entry:
247    %0:gprc = LI 3
248    TWI 24, %0, 0
249    BLR8 implicit $lr8, implicit $rm
250...
251  # CHECK-LABEL: conditional_trap_opt_TWI_24
252  # CHECK: # %bb.0: # %entry
253  # CHECK-NEXT:  trap
254  # CHECK-NOT:   blr
255
256---
257name:            conditional_trap_opt_no_trap_TWI_24
258alignment:       16
259tracksRegLiveness: true
260body:             |
261  bb.0.entry:
262    %0:gprc = LI 0
263    TWI 24, %0, 0
264    BLR8 implicit $lr8, implicit $rm
265...
266  # CHECK-LABEL: conditional_trap_opt_no_trap_TWI_24
267  # CHECK: # %bb.0: # %entry
268  # CHECK-NEXT:  blr
269
270---
271name:            conditional_trap_opt_TWI_20
272alignment:       16
273tracksRegLiveness: true
274body:             |
275  bb.0.entry:
276    %0:gprc = LI 3
277    TWI 20, %0, 3
278    BLR8 implicit $lr8, implicit $rm
279...
280  # CHECK-LABEL: conditional_trap_opt_TWI_20
281  # CHECK: # %bb.0: # %entry
282  # CHECK-NEXT:  trap
283  # CHECK-NOT:   blr
284
285---
286name:            conditional_trap_opt_no_trap_TWI_20
287alignment:       16
288tracksRegLiveness: true
289body:             |
290  bb.0.entry:
291    %0:gprc = LI 3
292    TWI 20, %0, 0
293    BLR8 implicit $lr8, implicit $rm
294...
295  # CHECK-LABEL: conditional_trap_opt_no_trap_TWI_20
296  # CHECK: # %bb.0: # %entry
297  # CHECK-NEXT:  blr
298
299---
300name:            conditional_trap_opt_no_trap_TWI_16
301alignment:       16
302tracksRegLiveness: true
303body:             |
304  bb.0.entry:
305    %0:gprc = LI 5
306    TWI 16, %0, 1
307    BLR8 implicit $lr8, implicit $rm
308...
309  # CHECK-LABEL: conditional_trap_opt_no_trap_TWI_16
310  # CHECK: # %bb.0: # %entry
311  # CHECK-NEXT:  blr
312
313---
314name:            conditional_trap_opt_TWI_16
315alignment:       16
316tracksRegLiveness: true
317body:             |
318  bb.0.entry:
319    %0:gprc = LI 5
320    %1:gprc = LI 1
321    TWI 16, %1, 5
322    TWI 16, %0, 1
323    BLR8 implicit $lr8, implicit $rm
324...
325  # CHECK-LABEL: conditional_trap_opt_TWI_16
326  # CHECK: # %bb.0: # %entry
327  # CHECK-NEXT:  trap
328  # CHECK-NOT:   blr
329
330---
331name:            conditional_trap_opt_TWI_8
332alignment:       16
333tracksRegLiveness: true
334body:             |
335  bb.0.entry:
336    %0:gprc = LI -1
337    %1:gprc = LI 10
338    TWI 8, %1, -1
339    TWI 8, %0, 10
340    BLR8 implicit $lr8, implicit $rm
341...
342  # CHECK-LABEL: conditional_trap_opt_TWI_8
343  # CHECK: # %bb.0: # %entry
344  # CHECK-NEXT:  trap
345  # CHECK-NOT:   blr
346
347---
348name:            conditional_trap_opt_TWI_2
349alignment:       16
350tracksRegLiveness: true
351body:             |
352  bb.0.entry:
353    %0:gprc = LI -1
354    %1:gprc = LI 2
355    TWI 2, %1, -1
356    TWI 2, %0, 2
357    BLR8 implicit $lr8, implicit $rm
358...
359  # CHECK-LABEL: conditional_trap_opt_TWI_2
360  # CHECK: # %bb.0: # %entry
361  # CHECK-NEXT:  trap
362  # CHECK-NOT:   blr
363
364---
365name:            conditional_trap_opt_TWI_1
366alignment:       16
367tracksRegLiveness: true
368body:             |
369  bb.0.entry:
370    %0:gprc = LI -3
371    %1:gprc = LI 4
372    TWI 1, %1, -3
373    TWI 1, %0, 4
374    BLR8 implicit $lr8, implicit $rm
375...
376  # CHECK-LABEL: conditional_trap_opt_TWI_1
377  # CHECK: # %bb.0: # %entry
378  # CHECK-NEXT:  trap
379  # CHECK-NOT:   blr
380
381---
382name:            conditional_trap_opt_TWI_4
383alignment:       16
384tracksRegLiveness: true
385body:             |
386  bb.0.entry:
387    %0:gprc = LI 5
388    %1:gprc = LI 1
389    TWI 4, %1, 5
390    TWI 4, %1, 1
391    BLR8 implicit $lr8, implicit $rm
392...
393  # CHECK-LABEL: conditional_trap_opt_TWI_4
394  # CHECK: # %bb.0: # %entry
395  # CHECK-NEXT:  trap
396  # CHECK-NOT:   blr
397
398---
399name:            conditional_trap_opt_TD_31
400alignment:       16
401tracksRegLiveness: true
402body:             |
403  bb.0.entry:
404    %0:g8rc = LI8 3
405    %1:g8rc = LI8 0
406    TD 31, %1, %0
407    BLR8 implicit $lr8, implicit $rm
408...
409  # CHECK-LABEL: conditional_trap_opt_TD_31
410  # CHECK: # %bb.0: # %entry
411  # CHECK-NEXT:  trap
412  # CHECK-NOT:   blr
413
414---
415name:            conditional_trap_opt_TD_24
416alignment:       16
417tracksRegLiveness: true
418body:             |
419  bb.0.entry:
420    %0:g8rc = LI8 3
421    %1:g8rc = LI8 0
422    TD 24, %1, %0
423    BLR8 implicit $lr8, implicit $rm
424...
425  # CHECK-LABEL: conditional_trap_opt_TD_24
426  # CHECK: # %bb.0: # %entry
427  # CHECK-NEXT:  trap
428  # CHECK-NOT:   blr
429
430---
431name:            conditional_trap_opt_no_trap_TD_24
432alignment:       16
433tracksRegLiveness: true
434body:             |
435  bb.0.entry:
436    %0:g8rc = LI8 3
437    %1:g8rc = LI8 3
438    TD 24, %1, %0
439    BLR8 implicit $lr8, implicit $rm
440...
441  # CHECK-LABEL: conditional_trap_opt_no_trap_TD_24
442  # CHECK: # %bb.0: # %entry
443  # CHECK-NEXT:  blr
444
445---
446name:            conditional_trap_opt_TD_20
447alignment:       16
448tracksRegLiveness: true
449body:             |
450  bb.0.entry:
451    %0:g8rc = LI8 3
452    %1:g8rc = LI8 3
453    TD 20, %1, %0
454    BLR8 implicit $lr8, implicit $rm
455...
456  # CHECK-LABEL: conditional_trap_opt_TD_20
457  # CHECK: # %bb.0: # %entry
458  # CHECK-NEXT:  trap
459  # CHECK-NOT:   blr
460
461---
462name:            conditional_trap_opt_no_trap_TD_20
463alignment:       16
464tracksRegLiveness: true
465body:             |
466  bb.0.entry:
467    %0:g8rc = LI8 3
468    %1:g8rc = LI8 5
469    TD 20, %1, %0
470    BLR8 implicit $lr8, implicit $rm
471...
472  # CHECK-LABEL: conditional_trap_opt_no_trap_TD_20
473  # CHECK: # %bb.0: # %entry
474  # CHECK-NEXT:  blr
475
476---
477name:            conditional_trap_opt_no_trap_TD_16
478alignment:       16
479tracksRegLiveness: true
480body:             |
481  bb.0.entry:
482    %0:g8rc = LI8 5
483    %1:g8rc = LI8 1
484    TD 16, %0, %1
485    BLR8 implicit $lr8, implicit $rm
486...
487  # CHECK-LABEL: conditional_trap_opt_no_trap_TD_16
488  # CHECK: # %bb.0: # %entry
489  # CHECK-NEXT:  blr
490
491---
492name:            conditional_trap_opt_TD_16
493alignment:       16
494tracksRegLiveness: true
495body:             |
496  bb.0.entry:
497    %0:g8rc = LI8 5
498    %1:g8rc = LI8 1
499    TD 16, %1, %0
500    TD 16, %0, %1
501    BLR8 implicit $lr8, implicit $rm
502...
503  # CHECK-LABEL: conditional_trap_opt_TD_16
504  # CHECK: # %bb.0: # %entry
505  # CHECK-NEXT:  trap
506  # CHECK-NOT:   blr
507
508---
509name:            conditional_trap_opt_TD_8
510alignment:       16
511tracksRegLiveness: true
512body:             |
513  bb.0.entry:
514    %0:g8rc = LI8 -1
515    %1:g8rc = LI8 10
516    TD 8, %1, %0
517    TD 8, %0, %1
518    BLR8 implicit $lr8, implicit $rm
519...
520  # CHECK-LABEL: conditional_trap_opt_TD_8
521  # CHECK: # %bb.0: # %entry
522  # CHECK-NEXT:  trap
523  # CHECK-NOT:   blr
524
525---
526name:            conditional_trap_opt_TD_2
527alignment:       16
528tracksRegLiveness: true
529body:             |
530  bb.0.entry:
531    %0:g8rc = LI8 -1
532    %1:g8rc = LI8 2
533    TD 2, %1, %0
534    TD 2, %0, %1
535    BLR8 implicit $lr8, implicit $rm
536...
537  # CHECK-LABEL: conditional_trap_opt_TD_2
538  # CHECK: # %bb.0: # %entry
539  # CHECK-NEXT:  trap
540  # CHECK-NOT:   blr
541
542---
543name:            conditional_trap_opt_TD_1
544alignment:       16
545tracksRegLiveness: true
546body:             |
547  bb.0.entry:
548    %0:g8rc = LI8 -3
549    %1:g8rc = LI8 4
550    TD 1, %1, %0
551    TD 1, %0, %1
552    BLR8 implicit $lr8, implicit $rm
553...
554  # CHECK-LABEL: conditional_trap_opt_TD_1
555  # CHECK: # %bb.0: # %entry
556  # CHECK-NEXT:  trap
557  # CHECK-NOT:   blr
558
559---
560name:            conditional_trap_opt_TD_4
561alignment:       16
562tracksRegLiveness: true
563body:             |
564  bb.0.entry:
565    %0:g8rc = LI8 5
566    %1:g8rc = LI8 1
567    TD 4, %1, %0
568    TD 4, %1, %1
569    BLR8 implicit $lr8, implicit $rm
570...
571  # CHECK-LABEL: conditional_trap_opt_TD_4
572  # CHECK: # %bb.0: # %entry
573  # CHECK-NEXT:  trap
574  # CHECK-NOT:   blr
575
576---
577name:            conditional_trap_opt_TDI_31
578alignment:       16
579tracksRegLiveness: true
580body:             |
581  bb.0.entry:
582    %0:g8rc = LI8 3
583    TDI 31, %0, 0
584    BLR8 implicit $lr8, implicit $rm
585...
586  # CHECK-LABEL: conditional_trap_opt_TDI_31
587  # CHECK: # %bb.0: # %entry
588  # CHECK-NEXT:  trap
589  # CHECK-NOT:   blr
590
591---
592name:            conditional_trap_opt_TDI_24
593alignment:       16
594tracksRegLiveness: true
595body:             |
596  bb.0.entry:
597    %0:g8rc = LI8 3
598    TDI 24, %0, 0
599    BLR8 implicit $lr8, implicit $rm
600...
601  # CHECK-LABEL: conditional_trap_opt_TDI_24
602  # CHECK: # %bb.0: # %entry
603  # CHECK-NEXT:  trap
604  # CHECK-NOT:   blr
605
606---
607name:            conditional_trap_opt_no_trap_TDI_24
608alignment:       16
609tracksRegLiveness: true
610body:             |
611  bb.0.entry:
612    %0:g8rc = LI8 0
613    TDI 24, %0, 0
614    BLR8 implicit $lr8, implicit $rm
615...
616  # CHECK-LABEL: conditional_trap_opt_no_trap_TDI_24
617  # CHECK: # %bb.0: # %entry
618  # CHECK-NEXT:  blr
619
620---
621name:            conditional_trap_opt_TDI_20
622alignment:       16
623tracksRegLiveness: true
624body:             |
625  bb.0.entry:
626    %0:g8rc = LI8 3
627    TDI 20, %0, 3
628    BLR8 implicit $lr8, implicit $rm
629...
630  # CHECK-LABEL: conditional_trap_opt_TDI_20
631  # CHECK: # %bb.0: # %entry
632  # CHECK-NEXT:  trap
633  # CHECK-NOT:   blr
634
635---
636name:            conditional_trap_opt_no_trap_TDI_20
637alignment:       16
638tracksRegLiveness: true
639body:             |
640  bb.0.entry:
641    %0:g8rc = LI8 5
642    TDI 20, %0, 3
643    BLR8 implicit $lr8, implicit $rm
644...
645  # CHECK-LABEL: conditional_trap_opt_no_trap_TDI_20
646  # CHECK: # %bb.0: # %entry
647  # CHECK-NEXT:  blr
648
649---
650name:            conditional_trap_opt_no_trap_TDI_16
651alignment:       16
652tracksRegLiveness: true
653body:             |
654  bb.0.entry:
655    %0:g8rc = LI8 5
656    TDI 16, %0, 1
657    BLR8 implicit $lr8, implicit $rm
658...
659  # CHECK-LABEL: conditional_trap_opt_no_trap_TDI_16
660  # CHECK: # %bb.0: # %entry
661  # CHECK-NEXT:  blr
662
663---
664name:            conditional_trap_opt_TDI_16
665alignment:       16
666tracksRegLiveness: true
667body:             |
668  bb.0.entry:
669    %0:g8rc = LI8 5
670    %1:g8rc = LI8 1
671    TDI 16, %1, 5
672    TDI 16, %0, 1
673    BLR8 implicit $lr8, implicit $rm
674...
675  # CHECK-LABEL: conditional_trap_opt_TDI_16
676  # CHECK: # %bb.0: # %entry
677  # CHECK-NEXT:  trap
678  # CHECK-NOT:   blr
679
680---
681name:            conditional_trap_opt_TDI_8
682alignment:       16
683tracksRegLiveness: true
684body:             |
685  bb.0.entry:
686    %0:g8rc = LI8 -1
687    %1:g8rc = LI8 10
688    TDI 8, %1, -1
689    TDI 8, %0, 10
690    BLR8 implicit $lr8, implicit $rm
691...
692  # CHECK-LABEL: conditional_trap_opt_TDI_8
693  # CHECK: # %bb.0: # %entry
694  # CHECK-NEXT:  trap
695  # CHECK-NOT:   blr
696
697---
698name:            conditional_trap_opt_TDI_2
699alignment:       16
700tracksRegLiveness: true
701body:             |
702  bb.0.entry:
703    %0:g8rc = LI8 -1
704    %1:g8rc = LI8 2
705    TDI 2, %1, -1
706    TDI 2, %0, 2
707    BLR8 implicit $lr8, implicit $rm
708...
709  # CHECK-LABEL: conditional_trap_opt_TDI_2
710  # CHECK: # %bb.0: # %entry
711  # CHECK-NEXT:  trap
712  # CHECK-NOT:   blr
713
714---
715name:            conditional_trap_opt_TDI_1
716alignment:       16
717tracksRegLiveness: true
718body:             |
719  bb.0.entry:
720    %0:g8rc = LI8 -3
721    %1:g8rc = LI8 4
722    TDI 1, %1, -3
723    TDI 1, %0, 4
724    BLR8 implicit $lr8, implicit $rm
725...
726  # CHECK-LABEL: conditional_trap_opt_TDI_1
727  # CHECK: # %bb.0: # %entry
728  # CHECK-NEXT:  trap
729  # CHECK-NOT:   blr
730
731---
732name:            conditional_trap_opt_TDI_4
733alignment:       16
734tracksRegLiveness: true
735body:             |
736  bb.0.entry:
737    %0:g8rc = LI8 5
738    %1:g8rc = LI8 1
739    TDI 4, %1, 5
740    TDI 4, %1, 1
741    BLR8 implicit $lr8, implicit $rm
742...
743  # CHECK-LABEL: conditional_trap_opt_TDI_4
744  # CHECK: # %bb.0: # %entry
745  # CHECK-NEXT:  trap
746  # CHECK-NOT:   blr
747
748---
749name:            conditional_trap_opt_multiple_traps
750alignment:       16
751tracksRegLiveness: true
752body:             |
753  bb.0.entry:
754    %0:gprc = LI 5
755    %1:gprc = LI 1
756    %2:g8rc = LI8 -1
757    %3:g8rc = LI8 0
758    TWI 31, %1, 5
759    TDI 31, %3, 0
760    TW 31, %0, %1
761    TD 31, %2, %2
762    BLR8 implicit $lr8, implicit $rm
763...
764  # CHECK-LABEL: conditional_trap_opt_multiple_traps
765  # CHECK: # %bb.0: # %entry
766  # CHECK-NEXT:  trap
767  # CHECK-NOT:   blr
768