1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00

[Hexagon] Solo instructions cannot be used with new value jumps

llvm-svn: 319470
This commit is contained in:
Krzysztof Parzyszek 2017-11-30 20:32:54 +00:00
parent b450e44d98
commit aafdd52306
2 changed files with 22 additions and 0 deletions

View File

@ -139,6 +139,9 @@ static bool canBeFeederToNewValueJump(const HexagonInstrInfo *QII,
if (II->isImplicitDef())
return false;
if (QII->isSolo(*II))
return false;
// Make sure there there is no 'def' or 'use' of any of the uses of
// feeder insn between it's definition, this MI and jump, jmpInst
// skipping compare, cmpInst.

View File

@ -0,0 +1,19 @@
# RUN: llc -march=hexagon -run-pass hexagon-packetizer %s -o - | FileCheck %s
# Check that there is no new-value jump:
# CHECK-LABEL: name: fred
# CHECK-NOT: if{{.*}}cmp
---
name: fred
tracksRegLiveness: true
body: |
bb.0:
successors: %bb.1
%r0 = A2_tfrsi 0
%r0 = V6_extractw killed undef %v0, %r0
%p0 = C2_cmpeqi killed %r0, 1
J2_jumpf killed %p0, %bb.1, implicit-def %pc
bb.1:
...