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 | d44f02488c6ed07308dfb1d0ae8907c12edad82f (patch) | |
tree | 810754499f344edf9b230465d22968caccfbc0f0 /test/CodeGen/ARM/tail-dup-bundle.mir | |
parent | d10d99ec2ae2bdbcc8d560b23d18268901311a8f (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311520 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/tail-dup-bundle.mir')
-rw-r--r-- | test/CodeGen/ARM/tail-dup-bundle.mir | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/tail-dup-bundle.mir b/test/CodeGen/ARM/tail-dup-bundle.mir new file mode 100644 index 00000000000..67c1cb5a6b9 --- /dev/null +++ b/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, _ +... |