[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