summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Hexagon
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-10-12 22:53:41 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-10-12 22:53:41 +0000
commitabc0662f04df16a28cd57b6a76c255136b46ff6b (patch)
tree988b7eb81efb111dc48e57af341860a2a30881b9 /llvm/test/CodeGen/Hexagon
parentfb8d9898188c1b95ffb56600b608e11bbbb94946 (diff)
downloadbcm5719-llvm-abc0662f04df16a28cd57b6a76c255136b46ff6b.tar.gz
bcm5719-llvm-abc0662f04df16a28cd57b6a76c255136b46ff6b.zip
Handle lane masks in LivePhysRegs when adding live-ins
Differential Revision: https://reviews.llvm.org/D25533 llvm-svn: 284076
Diffstat (limited to 'llvm/test/CodeGen/Hexagon')
-rw-r--r--llvm/test/CodeGen/Hexagon/livephysregs-lane-masks.mir40
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Hexagon/livephysregs-lane-masks.mir b/llvm/test/CodeGen/Hexagon/livephysregs-lane-masks.mir
new file mode 100644
index 00000000000..b2e1968bb59
--- /dev/null
+++ b/llvm/test/CodeGen/Hexagon/livephysregs-lane-masks.mir
@@ -0,0 +1,40 @@
+# RUN: llc -march=hexagon -run-pass if-converter -verify-machineinstrs -o - %s | FileCheck %s
+
+# CHECK-LABEL: name: foo
+# CHECK: %p0 = C2_cmpeqi %r16, 0
+# Make sure there is no implicit use of r1.
+# CHECK: %r1 = L2_ploadruhf_io %p0, %r29, 6
+
+--- |
+ define void @foo() {
+ ret void
+ }
+...
+
+
+---
+name: foo
+tracksRegLiveness: true
+
+body: |
+ bb.0:
+ liveins: %r16
+ successors: %bb.1, %bb.2
+ %p0 = C2_cmpeqi %r16, 0
+ J2_jumpt %p0, %bb.2, implicit-def %pc
+
+ bb.1:
+ ; The lane mask %d0:0002 is equivalent to %r0. LivePhysRegs would ignore
+ ; it and treat it as the whole %d0, which is a pair %r1, %r0. The extra
+ ; %r1 would cause an (undefined) implicit use to be added during
+ ; if-conversion.
+ liveins: %d0:0x00000002, %d15:0x00000001, %r16
+ successors: %bb.2
+ %r1 = L2_loadruh_io %r29, 6
+ S2_storeri_io killed %r16, 0, %r1
+
+ bb.2:
+ liveins: %r0
+ %d8 = L2_loadrd_io %r29, 8
+ L4_return implicit-def %r29, implicit-def %r30, implicit-def %r31, implicit-def %pc, implicit %r30
+
OpenPOWER on IntegriCloud