Skip to content
This repository has been archived by the owner on Apr 23, 2020. It is now read-only.

Commit

Permalink
[Hexagon] Handle *Low8 register classes in early if-conversion
Browse files Browse the repository at this point in the history
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325606 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Krzysztof Parzyszek committed Feb 20, 2018
1 parent 771994b commit 1837dbf
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/Target/Hexagon/HexagonEarlyIfConv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -765,9 +765,11 @@ unsigned HexagonEarlyIfConversion::buildMux(MachineBasicBlock *B,
unsigned Opc = 0;
switch (DRC->getID()) {
case Hexagon::IntRegsRegClassID:
case Hexagon::IntRegsLow8RegClassID:
Opc = Hexagon::C2_mux;
break;
case Hexagon::DoubleRegsRegClassID:
case Hexagon::GeneralDoubleLow8RegsRegClassID:
Opc = Hexagon::PS_pselect;
break;
case Hexagon::HvxVRRegClassID:
Expand Down
27 changes: 27 additions & 0 deletions test/CodeGen/Hexagon/early-if-low8.mir
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# RUN: llc -march=hexagon -run-pass hexagon-early-if %s -o - | FileCheck %s

# Make sure that early if-conversion handles the *low8 register classes:
# CHECK: intregslow8 = C2_mux
# CHECK: generaldoublelow8regs = PS_pselect

---
name: fred
tracksRegLiveness: true
body: |
bb.0:
liveins: $r0, $r1
%0:intregslow8 = COPY $r0
%1:intregslow8 = COPY $r1
%2:generaldoublelow8regs = A2_tfrpi 1
%3:predregs = C2_cmpeq %0, %1
J2_jumpf %3, %bb.2, implicit-def $pc
bb.1:
%4:intregslow8 = A2_addi %0, 1
%5:generaldoublelow8regs = A2_tfrpi 0
bb.2:
%6:intregslow8 = PHI %0, %bb.0, %4, %bb.1
%7:generaldoublelow8regs = PHI %2, %bb.0, %5, %bb.1
$r0 = COPY %6
$d1 = COPY %7
J2_jumpr $r31, implicit $r0, implicit $d1, implicit-def $pc
...

0 comments on commit 1837dbf

Please sign in to comment.