From 1b7197e690a7055a0992bae76e996f0b04d52a61 Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Wed, 8 Mar 2017 15:46:28 +0000 Subject: [Hexagon] Use correct offset when extracting from the high word When extracting a bitfield from the high register in a register pair, the final offset should be relative to the high register (for 32-bit extracts). llvm-svn: 297288 --- llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'llvm/lib/Target') diff --git a/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp b/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp index 5fef6083552..41d4f6c17e8 100644 --- a/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp +++ b/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp @@ -2480,6 +2480,7 @@ bool BitSimplification::simplifyExtractLow(MachineInstr *MI, continue; if (RW != SW) SR = (Off/RW == 0) ? Hexagon::isub_lo : Hexagon::isub_hi; + Off = Off % RW; if (!validateReg({R,SR}, ExtOpc, 1)) continue; -- cgit v1.2.3