aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Analysis/ValueTrackingTest.cpp
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@quicinc.com>2023-06-19 08:18:05 -0700
committerKrzysztof Parzyszek <kparzysz@quicinc.com>2023-06-19 08:22:41 -0700
commit734881a6d546c6065a4aa43c3d876337b8b2a263 (patch)
treec271b71252b37025b3b05ea1d94c69ff9a51de89 /llvm/unittests/Analysis/ValueTrackingTest.cpp
parent6c93b0d6a6fa885ab0c8e7edce1af8a99008321c (diff)
downloadllvm-734881a6d546c6065a4aa43c3d876337b8b2a263.zip
llvm-734881a6d546c6065a4aa43c3d876337b8b2a263.tar.gz
llvm-734881a6d546c6065a4aa43c3d876337b8b2a263.tar.bz2
[Hexagon] Fix range checks for immediate operands
The output assembly (textual) contains the instruction r29 = add(r29,#4294967136) The value 4294967136 is -160 when interpreted as a signed 32-bit integer, so it fits in the range of the immediate operand without a constant extender. The range check in HexagonInstrInfo was putting the operand value into an int variable, reporting no need for an extender. This resulted in a packet with 4 instructions, including the "add". The corresponding check in HexagonMCInstrInfo was using an int64_t variable, causing the range check to fail, and an extender to be emitted when lowering to MCInst, resulting in a packet with too many instructions.
Diffstat (limited to 'llvm/unittests/Analysis/ValueTrackingTest.cpp')
0 files changed, 0 insertions, 0 deletions