aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/AArch64/GlobalISel/select-br.mir
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/AArch64/GlobalISel/select-br.mir')
-rw-r--r--test/CodeGen/AArch64/GlobalISel/select-br.mir71
1 files changed, 71 insertions, 0 deletions
diff --git a/test/CodeGen/AArch64/GlobalISel/select-br.mir b/test/CodeGen/AArch64/GlobalISel/select-br.mir
new file mode 100644
index 000000000000..f46f190260f6
--- /dev/null
+++ b/test/CodeGen/AArch64/GlobalISel/select-br.mir
@@ -0,0 +1,71 @@
+# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
+
+--- |
+ target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
+
+ define void @unconditional_br() { ret void }
+ define void @conditional_br() { ret void }
+ define void @indirect_br() { ret void }
+...
+
+---
+# CHECK-LABEL: name: unconditional_br
+name: unconditional_br
+legalized: true
+regBankSelected: true
+
+# CHECK: body:
+# CHECK: bb.0:
+# CHECK: successors: %bb.0
+# CHECK: B %bb.0
+body: |
+ bb.0:
+ successors: %bb.0
+
+ G_BR %bb.0
+...
+
+---
+# CHECK-LABEL: name: conditional_br
+name: conditional_br
+legalized: true
+regBankSelected: true
+
+registers:
+ - { id: 0, class: gpr }
+
+# CHECK: body:
+# CHECK: bb.0:
+# CHECK: TBNZW %0, 0, %bb.1
+# CHECK: B %bb.0
+body: |
+ bb.0:
+ successors: %bb.0, %bb.1
+ %0(s1) = COPY %w0
+ G_BRCOND %0(s1), %bb.1
+ G_BR %bb.0
+
+ bb.1:
+...
+
+---
+# CHECK-LABEL: name: indirect_br
+name: indirect_br
+legalized: true
+regBankSelected: true
+
+registers:
+ - { id: 0, class: gpr }
+
+# CHECK: body:
+# CHECK: bb.0:
+# CHECK: %0 = COPY %x0
+# CHECK: BR %0
+body: |
+ bb.0:
+ successors: %bb.0, %bb.1
+ %0(p0) = COPY %x0
+ G_BRINDIRECT %0(p0)
+
+ bb.1:
+...