diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-05-31 14:27:10 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-05-31 14:27:10 +0000 |
| commit | a580273b3ff6102e55c67d041161b35a412e5f75 (patch) | |
| tree | 8db95b6d6d3864f0fce4682920d41741e8e95cf9 /llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp | |
| parent | 1cb7ee130048d57e177d9d3fdc6cdb7621bb5d74 (diff) | |
| download | bcm5719-llvm-a580273b3ff6102e55c67d041161b35a412e5f75.tar.gz bcm5719-llvm-a580273b3ff6102e55c67d041161b35a412e5f75.zip | |
[Hexagon] Disable expanding MUX instructions that define a subregister
The code in HexagonExpandCondsets.cpp does not handle those cases at the
moment.
llvm-svn: 271281
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp index b00e9966d7e..b5f709241f2 100644 --- a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp +++ b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp @@ -991,6 +991,11 @@ bool HexagonExpandCondsets::predicate(MachineInstr *TfrI, bool Cond) { // some registers, which would complicate the transformation considerably. if (!MS.isKill()) return false; + // Avoid predicating instructions that define a subregister. The code + // does not handle correctly cases where both subregisters of a register + // are defined by a condset. + if (MD.getSubReg()) + return false; RegisterRef RT(MS); unsigned PredR = MP.getReg(); |

