llvm-6502/lib
Weiming Zhao 541681c848 Fix PR 17368: disable vector mul distribution for square of add/sub for ARM
Generally, it is desirable to distribute (a + b) * c to a*c + b*c for
ARM with VMLx forwarding, where a, b and c are vectors.
However, for (a + b)*(a + b), distribution will result in one extra
instruction.
With distribution:
  x = a + b (add)
  y = a * x (mul)
  z = y + b * y (mla)

Without distribution:
  x = a + b (add)
  z = x * x (mul)

This patch checks if a mul is a square of add/sub. If yes, skip
distribution.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191410 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-25 23:12:06 +00:00
..
Analysis MemoryBuiltins: Remove posix_memalign from the list and replace it with a TODO. 2013-09-24 17:49:08 +00:00
AsmParser Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
Bitcode Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
CodeGen Teach DAGCombiner how to canonicalize dags according to the rule 2013-09-25 19:01:01 +00:00
DebugInfo Dump the normal dwarf pubtypes section as well. 2013-09-25 23:02:41 +00:00
ExecutionEngine Revert "llvm-c: Add LLVMGetPointerToFunction" 2013-09-20 07:00:36 +00:00
IR Initial support for Neon scalar instructions. 2013-09-24 02:47:27 +00:00
IRReader Add 'const' qualifiers to static const char* variables. 2013-07-16 01:17:10 +00:00
Linker Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
LTO Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
MC MC: Add support for treating $ as a reference to the PC 2013-09-25 10:47:21 +00:00
Object ELF: Add support for the exclude section bit for gas compat. 2013-09-15 19:53:20 +00:00
Option Fix another mistake in r190442. 2013-09-10 23:22:56 +00:00
Support Provide basic type safety for array_pod_sort comparators. 2013-09-22 14:09:50 +00:00
TableGen Add an error check for a typo I accidentally made in a td file that caused an assert to fire. 2013-08-20 04:22:09 +00:00
Target Fix PR 17368: disable vector mul distribution for square of add/sub for ARM 2013-09-25 23:12:06 +00:00
Transforms SLPVectorize: Put horizontal reductions feeding a store under separate flag 2013-09-25 14:02:32 +00:00
CMakeLists.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
LLVMBuild.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Makefile Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00