diff options
author | Matthias Braun <matze@braunis.de> | 2017-08-23 03:17:59 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2017-08-23 03:17:59 +0000 |
commit | 8426d1342d82b365f4997c3d222c349fe7fba2ac (patch) | |
tree | 97ebae8104e0c0a140bc498aa1e61a6631db5b6a /llvm/test/CodeGen/ARM/tail-dup-bundle.mir | |
parent | 498117bf11d8e7be5770f5f16da398a5e372c4be (diff) | |
download | bcm5719-llvm-8426d1342d82b365f4997c3d222c349fe7fba2ac.tar.gz bcm5719-llvm-8426d1342d82b365f4997c3d222c349fe7fba2ac.zip |
Add test case for r311511
This also changes the TailDuplicator to be configured explicitely
pre/post regalloc rather than relying on the isSSA() flag. This was
necessary to have `llc -run-pass` work reliably.
llvm-svn: 311520
Diffstat (limited to 'llvm/test/CodeGen/ARM/tail-dup-bundle.mir')
-rw-r--r-- | llvm/test/CodeGen/ARM/tail-dup-bundle.mir | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/tail-dup-bundle.mir b/llvm/test/CodeGen/ARM/tail-dup-bundle.mir new file mode 100644 index 00000000000..67c1cb5a6b9 --- /dev/null +++ b/llvm/test/CodeGen/ARM/tail-dup-bundle.mir @@ -0,0 +1,36 @@ +# RUN: llc -o - %s -run-pass=block-placement -mtriple=thumbv7k-apple-ios8.0.0 -verify-machineinstrs -O3 | FileCheck %s +--- +# CHECK-LABEL: name: func +# Make sure the bundle gets duplicated correctly +# CHECK: BUNDLE implicit-def dead %itstate, implicit-def %cpsr, implicit killed %r0, implicit killed %cpsr { +# CHECK: t2IT 1, 24, implicit-def %itstate +# CHECK: t2CMPri killed %r0, 9, 1, killed %cpsr, implicit-def %cpsr, implicit internal killed %itstate +# CHECK: } +# CHECK: BUNDLE implicit-def dead %itstate, implicit-def %cpsr, implicit killed %r0, implicit killed %cpsr { +# CHECK: t2IT 1, 24, implicit-def %itstate +# CHECK: t2CMPri killed %r0, 9, 1, killed %cpsr, implicit-def %cpsr, implicit internal killed %itstate +# CHECK: } +name: func +tracksRegLiveness: true +body: | + bb.0: + liveins: %r0, %lr, %r7 + + bb.1: + liveins: %r0 + + t2CMPri %r0, 32, 14, _, implicit-def %cpsr + BUNDLE implicit-def dead %itstate, implicit-def %cpsr, implicit killed %r0, implicit killed %cpsr { + t2IT 1, 24, implicit-def %itstate + t2CMPri killed %r0, 9, 1, killed %cpsr, implicit-def %cpsr, implicit internal killed %itstate + } + t2Bcc %bb.3, 1, killed %cpsr + + bb.2: + %r0 = IMPLICIT_DEF + t2B %bb.1, 14, _ + + bb.3: + %r0 = IMPLICIT_DEF + t2B %bb.1, 14, _ +... |