[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / instruction-select / branch.mir
blobdc927bae11fd9d690dd2b30efde4d952fa1776b3
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -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 regBankSelected: true
32 tracksRegLiveness: true
33 body:             |
34   ; MIPS32-LABEL: name: Unconditional_branch
35   ; MIPS32: bb.0.entry:
36   ; MIPS32:   successors: %bb.2(0x80000000)
37   ; MIPS32:   liveins: $a0, $a1
38   ; MIPS32:   [[COPY:%[0-9]+]]:gpr32 = COPY $a0
39   ; MIPS32:   J %bb.2, implicit-def $at
40   ; MIPS32: bb.1.end:
41   ; MIPS32:   $v0 = COPY [[COPY]]
42   ; MIPS32:   RetRA implicit $v0
43   ; MIPS32: bb.2.block:
44   ; MIPS32:   successors: %bb.1(0x80000000)
45   ; MIPS32:   J %bb.1, implicit-def $at
46   bb.1.entry:
47     liveins: $a0, $a1
49     %0:gprb(s32) = COPY $a0
50     G_BR %bb.3
52   bb.2.end:
53     $v0 = COPY %0(s32)
54     RetRA implicit $v0
56   bb.3.block:
57     G_BR %bb.2
59 ...
60 ---
61 name:            Conditional_branch
62 alignment:       4
63 legalized:       true
64 regBankSelected: true
65 tracksRegLiveness: true
66 body:             |
67   ; MIPS32-LABEL: name: Conditional_branch
68   ; MIPS32: bb.0 (%ir-block.0):
69   ; MIPS32:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
70   ; MIPS32:   liveins: $a0, $a1, $a2
71   ; MIPS32:   [[COPY:%[0-9]+]]:gpr32 = COPY $a0
72   ; MIPS32:   [[COPY1:%[0-9]+]]:gpr32 = COPY $a1
73   ; MIPS32:   [[COPY2:%[0-9]+]]:gpr32 = COPY $a2
74   ; MIPS32:   [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 1
75   ; MIPS32:   BNE [[ANDi]], $zero, %bb.1, implicit-def $at
76   ; MIPS32:   J %bb.2, implicit-def $at
77   ; MIPS32: bb.1.if.then:
78   ; MIPS32:   $v0 = COPY [[COPY1]]
79   ; MIPS32:   RetRA implicit $v0
80   ; MIPS32: bb.2.if.else:
81   ; MIPS32:   $v0 = COPY [[COPY2]]
82   ; MIPS32:   RetRA implicit $v0
83   bb.1 (%ir-block.0):
84     liveins: $a0, $a1, $a2
86     %3:gprb(s32) = COPY $a0
87     %1:gprb(s32) = COPY $a1
88     %2:gprb(s32) = COPY $a2
89     %5:gprb(s32) = G_CONSTANT i32 1
90     %6:gprb(s32) = COPY %3(s32)
91     %4:gprb(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