[all-commits] [llvm/llvm-project] e9e1da: [ARM] Remove VHADD patterns
David Green via All-commits
all-commits at lists.llvm.org
Mon Dec 2 02:40:21 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: e9e1daf2b9e800c00a3c08db53650c1569288a1b
https://github.com/llvm/llvm-project/commit/e9e1daf2b9e800c00a3c08db53650c1569288a1b
Author: David Green <david.green at arm.com>
Date: 2019-12-02 (Mon, 02 Dec 2019)
Changed paths:
M llvm/lib/Target/ARM/ARMInstrMVE.td
M llvm/test/CodeGen/Thumb2/mve-vhaddsub.ll
Log Message:
-----------
[ARM] Remove VHADD patterns
These instructions do not work quite like I expected them to. They
perform the addition and then shift in a higher precision integer, so do
not match up with the patterns that we added.
For example with s8s, adding 100 and 100 should wrap leaving the shift
to work on a negative number. VHADD will instead do the arithmetic in
higher precision, giving 100 overall. The vhadd gives a "better" result,
but not one that matches up with the input.
I am just removing the patterns here. We might be able to re-add them in
the future by checking for wrap flags or changing bitwidths. But for the
moment just remove them to remove the problem cases.
More information about the All-commits
mailing list