llvm-6502/lib
Bill Schmidt b34c79e4bb Fix PR15155: lost vadd/vsplat optimization.
During lowering of a BUILD_VECTOR, we look for opportunities to use a
vector splat.  When the splatted value fits in 5 signed bits, a single
splat does the job.  When it doesn't fit in 5 bits but does fit in 6,
and is an even value, we can splat on half the value and add the result
to itself.

This last optimization hasn't been working recently because of improved
constant folding.  To circumvent this, create a pseudo VADD_SPLAT that
can be expanded during instruction selection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175632 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-20 15:50:31 +00:00
..
Analysis
Archive
AsmParser
Bitcode Simplify code. No functionality change. 2013-02-19 09:48:30 +00:00
CodeGen Move the SplatByte helper to APInt and generalize it a bit. 2013-02-20 13:00:06 +00:00
DebugInfo Make helpers static. Add missing include so LLVMInitializeObjCARCOpts gets C linkage. 2013-02-15 12:30:38 +00:00
ExecutionEngine
IR Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
Linker
MC clear new map and initialize new variable 2013-02-20 00:10:29 +00:00
Object
Option
Support Move part of APInt implementation from header to cpp file. These methods 2013-02-20 00:17:42 +00:00
TableGen Make helpers static. Add missing include so LLVMInitializeObjCARCOpts gets C linkage. 2013-02-15 12:30:38 +00:00
Target Fix PR15155: lost vadd/vsplat optimization. 2013-02-20 15:50:31 +00:00
Transforms [asan] instrument invoke insns with noreturn attribute (as well as call insns) 2013-02-20 12:35:15 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile