[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Mips / GlobalISel / regbankselect / branch.mir
blob28416f116d0b7dbf53d1711d2a18ff4d8ba04751
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32
3 --- |
5   define i32 @Unconditional_branch(i32 %a, i32 %b) {
6   entry:
7     br label %block
9   end:                                              ; preds = %block
10     ret i32 %a
12   block:                                            ; preds = %entry
13     br label %end
14   }
16   define i32 @Conditional_branch(i1 %cond, i32 %a, i32 %b) {
17     br i1 %cond, label %if.then, label %if.else
19   if.then:                                          ; preds = %0
20     ret i32 %a
22   if.else:                                          ; preds = %0
23     ret i32 %b
24   }
26 ...
27 ---
28 name:            Unconditional_branch
29 alignment:       4
30 legalized:       true
31 tracksRegLiveness: true
32 body:             |
33   ; MIPS32-LABEL: name: Unconditional_branch
34   ; MIPS32: bb.0.entry:
35   ; MIPS32:   successors: %bb.2(0x80000000)
36   ; MIPS32:   liveins: $a0, $a1
37   ; MIPS32:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0
38   ; MIPS32:   G_BR %bb.2
39   ; MIPS32: bb.1.end:
40   ; MIPS32:   $v0 = COPY [[COPY]](s32)
41   ; MIPS32:   RetRA implicit $v0
42   ; MIPS32: bb.2.block:
43   ; MIPS32:   successors: %bb.1(0x80000000)
44   ; MIPS32:   G_BR %bb.1
45   bb.1.entry:
46     liveins: $a0, $a1
48     %0:_(s32) = COPY $a0
49     G_BR %bb.3
51   bb.2.end:
52     $v0 = COPY %0(s32)
53     RetRA implicit $v0
55   bb.3.block:
56     G_BR %bb.2
58 ...
59 ---
60 name:            Conditional_branch
61 alignment:       4
62 legalized:       true
63 tracksRegLiveness: true
64 body:             |
65   ; MIPS32-LABEL: name: Conditional_branch
66   ; MIPS32: bb.0 (%ir-block.0):
67   ; MIPS32:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
68   ; MIPS32:   liveins: $a0, $a1, $a2
69   ; MIPS32:   [[COPY:%[0-9]+]]:gprb(s32) = COPY $a0
70   ; MIPS32:   [[COPY1:%[0-9]+]]:gprb(s32) = COPY $a1
71   ; MIPS32:   [[COPY2:%[0-9]+]]:gprb(s32) = COPY $a2
72   ; MIPS32:   [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
73   ; MIPS32:   [[COPY3:%[0-9]+]]:gprb(s32) = COPY [[COPY]](s32)
74   ; MIPS32:   [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY3]], [[C]]
75   ; MIPS32:   G_BRCOND [[AND]](s32), %bb.1
76   ; MIPS32:   G_BR %bb.2
77   ; MIPS32: bb.1.if.then:
78   ; MIPS32:   $v0 = COPY [[COPY1]](s32)
79   ; MIPS32:   RetRA implicit $v0
80   ; MIPS32: bb.2.if.else:
81   ; MIPS32:   $v0 = COPY [[COPY2]](s32)
82   ; MIPS32:   RetRA implicit $v0
83   bb.1 (%ir-block.0):
84     liveins: $a0, $a1, $a2
86     %3:_(s32) = COPY $a0
87     %1:_(s32) = COPY $a1
88     %2:_(s32) = COPY $a2
89     %5:_(s32) = G_CONSTANT i32 1
90     %6:_(s32) = COPY %3(s32)
91     %4:_(s32) = G_AND %6, %5
92     G_BRCOND %4(s32), %bb.2
93     G_BR %bb.3
95   bb.2.if.then:
96     $v0 = COPY %1(s32)
97     RetRA implicit $v0
99   bb.3.if.else:
100     $v0 = COPY %2(s32)
101     RetRA implicit $v0