[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Mips / GlobalISel / legalizer / branch.mir
blob566e2fcbfe545021562353c904de5835ecc77aba
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -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 tracksRegLiveness: true
31 body:             |
32   ; MIPS32-LABEL: name: Unconditional_branch
33   ; MIPS32: bb.0.entry:
34   ; MIPS32:   successors: %bb.2(0x80000000)
35   ; MIPS32:   liveins: $a0, $a1
36   ; MIPS32:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0
37   ; MIPS32:   G_BR %bb.2
38   ; MIPS32: bb.1.end:
39   ; MIPS32:   $v0 = COPY [[COPY]](s32)
40   ; MIPS32:   RetRA implicit $v0
41   ; MIPS32: bb.2.block:
42   ; MIPS32:   successors: %bb.1(0x80000000)
43   ; MIPS32:   G_BR %bb.1
44   bb.1.entry:
45     liveins: $a0, $a1
47     %0:_(s32) = COPY $a0
48     G_BR %bb.3
50   bb.2.end:
51     $v0 = COPY %0(s32)
52     RetRA implicit $v0
54   bb.3.block:
55     G_BR %bb.2
57 ...
58 ---
59 name:            Conditional_branch
60 alignment:       4
61 tracksRegLiveness: true
62 body:             |
63   ; MIPS32-LABEL: name: Conditional_branch
64   ; MIPS32: bb.0 (%ir-block.0):
65   ; MIPS32:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
66   ; MIPS32:   liveins: $a0, $a1, $a2
67   ; MIPS32:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0
68   ; MIPS32:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a1
69   ; MIPS32:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a2
70   ; MIPS32:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
71   ; MIPS32:   [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
72   ; MIPS32:   [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C]]
73   ; MIPS32:   G_BRCOND [[AND]](s32), %bb.1
74   ; MIPS32:   G_BR %bb.2
75   ; MIPS32: bb.1.if.then:
76   ; MIPS32:   $v0 = COPY [[COPY1]](s32)
77   ; MIPS32:   RetRA implicit $v0
78   ; MIPS32: bb.2.if.else:
79   ; MIPS32:   $v0 = COPY [[COPY2]](s32)
80   ; MIPS32:   RetRA implicit $v0
81   bb.1 (%ir-block.0):
82     liveins: $a0, $a1, $a2
84     %3:_(s32) = COPY $a0
85     %0:_(s1) = G_TRUNC %3(s32)
86     %1:_(s32) = COPY $a1
87     %2:_(s32) = COPY $a2
88     G_BRCOND %0(s1), %bb.2
89     G_BR %bb.3
91   bb.2.if.then:
92     $v0 = COPY %1(s32)
93     RetRA implicit $v0
95   bb.3.if.else:
96     $v0 = COPY %2(s32)
97     RetRA implicit $v0
99 ...