summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/MIR/X86
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2015-07-24 17:31:55 +0000
committerAlex Lorenz <arphaman@gmail.com>2015-07-24 17:31:55 +0000
commit55f95127bf55ae4544d58c7087dbe87ef3cbbf7f (patch)
tree17e4a3fe0fcd065a40b7eeefc9692858b5e16d5f /llvm/test/CodeGen/MIR/X86
parent074a64e72c31a0407bf05f49d7b96443d2960d10 (diff)
downloadbcm5719-llvm-55f95127bf55ae4544d58c7087dbe87ef3cbbf7f.tar.gz
bcm5719-llvm-55f95127bf55ae4544d58c7087dbe87ef3cbbf7f.zip
MIR Tests: Make the basic block successor test an X86 specific test.
This commit moves and transforms the generic test 'CodeGen/MIR/successor-basic-blocks.mir' into an X86 specific test 'CodeGen/MIR/X86/successor-basic-blocks.mir'. This change is required in order to enable the machine verifier for the MIR parser, as the machine verifier verifies that the machine basic blocks contain instructions that actually determine the machine basic block successors. llvm-svn: 243123
Diffstat (limited to 'llvm/test/CodeGen/MIR/X86')
-rw-r--r--llvm/test/CodeGen/MIR/X86/successor-basic-blocks.mir80
1 files changed, 80 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/MIR/X86/successor-basic-blocks.mir b/llvm/test/CodeGen/MIR/X86/successor-basic-blocks.mir
new file mode 100644
index 00000000000..de4f84eb210
--- /dev/null
+++ b/llvm/test/CodeGen/MIR/X86/successor-basic-blocks.mir
@@ -0,0 +1,80 @@
+# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
+# This test ensures that the MIR parser parses basic block successors correctly.
+
+--- |
+
+ define i32 @foo(i32 %a) {
+ entry:
+ %0 = icmp sle i32 %a, 10
+ br i1 %0, label %less, label %exit
+
+ less:
+ ret i32 0
+
+ exit:
+ ret i32 %a
+ }
+
+ define i32 @bar(i32 %a) {
+ entry:
+ %b = icmp sle i32 %a, 10
+ br i1 %b, label %0, label %1
+
+ ; <label>:0
+ ret i32 0
+
+ ; <label>:1
+ ret i32 %a
+ }
+
+...
+---
+name: foo
+body:
+ # CHECK: name: entry
+ # CHECK: successors: [ '%bb.1.less', '%bb.2.exit' ]
+ # CHECK: name: less
+ - id: 0
+ name: entry
+ successors: [ '%bb.1.less', '%bb.2.exit' ]
+ liveins: [ '%edi' ]
+ instructions:
+ - 'CMP32ri8 %edi, 10, implicit-def %eflags'
+ - 'JG_1 %bb.2.exit, implicit killed %eflags'
+ - id: 1
+ name: less
+ instructions:
+ - '%eax = MOV32r0 implicit-def dead %eflags'
+ - 'RETQ killed %eax'
+ - id: 2
+ name: exit
+ liveins: [ '%edi' ]
+ instructions:
+ - '%eax = COPY killed %edi'
+ - 'RETQ killed %eax'
+...
+---
+name: bar
+body:
+ # CHECK: name: bar
+ # CHECK: name: entry
+ # CHECK: successors: [ '%bb.1', '%bb.2' ]
+ # CHECK: id: 1
+ # CHECK: id: 2
+ - id: 0
+ name: entry
+ successors: [ '%bb.1', '%bb.2' ]
+ liveins: [ '%edi' ]
+ instructions:
+ - 'CMP32ri8 %edi, 10, implicit-def %eflags'
+ - 'JG_1 %bb.2, implicit killed %eflags'
+ - id: 1
+ instructions:
+ - '%eax = MOV32r0 implicit-def dead %eflags'
+ - 'RETQ killed %eax'
+ - id: 2
+ liveins: [ '%edi' ]
+ instructions:
+ - '%eax = COPY killed %edi'
+ - 'RETQ killed %eax'
+...
OpenPOWER on IntegriCloud