diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-10-12 22:53:41 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-10-12 22:53:41 +0000 |
commit | abc0662f04df16a28cd57b6a76c255136b46ff6b (patch) | |
tree | 988b7eb81efb111dc48e57af341860a2a30881b9 /llvm/test/CodeGen | |
parent | fb8d9898188c1b95ffb56600b608e11bbbb94946 (diff) | |
download | bcm5719-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')
-rw-r--r-- | llvm/test/CodeGen/Hexagon/livephysregs-lane-masks.mir | 40 |
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 + |