llvm-6502/lib/VMCore
Evan Cheng 92e3916c3b Add intrinsics @llvm.arm.neon.vmulls and @llvm.arm.neon.vmullu.* back. Frontends
was lowering them to sext / uxt + mul instructions. Unfortunately the
optimization passes may hoist the extensions out of the loop and separate them.
When that happens, the long multiplication instructions can be broken into
several scalar instructions, causing significant performance issue.

Note the vmla and vmls intrinsics are not added back. Frontend will codegen them
as intrinsics vmull* + add / sub. Also note the isel optimizations for catching
mul + sext / zext are not changed either.

First part of rdar://8832507, rdar://9203134


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128502 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-29 23:06:19 +00:00
..
AsmWriter.cpp ptx: Fix calling convention printing in AsmWriter.cpp 2011-03-07 14:32:30 +00:00
Attributes.cpp Merge System into Support. 2010-11-29 18:16:10 +00:00
AutoUpgrade.cpp Add intrinsics @llvm.arm.neon.vmulls and @llvm.arm.neon.vmullu.* back. Frontends 2011-03-29 23:06:19 +00:00
BasicBlock.cpp Now that hasConstantValue has been made simpler, it may return the 2010-11-17 10:23:23 +00:00
CMakeLists.txt Unbreak the CMake build. 2011-03-10 00:51:01 +00:00
ConstantFold.cpp Enhance constant folding of bitcast operations on vectors of floats. 2011-02-17 21:22:27 +00:00
ConstantFold.h Remove casts between Value** and Constant**, which won't work if a 2011-01-14 08:07:43 +00:00
Constants.cpp ConstantInt has some getters which return ConstantInt's or ConstantVector's of 2011-03-06 03:36:19 +00:00
ConstantsContext.h FixedNumOperandTraits and VariadicOperandTraits assumed that, given a 2011-01-11 15:07:38 +00:00
Core.cpp Expose getTypeName to the C API. Patch by Patrick Walton. 2011-02-18 16:35:37 +00:00
DebugInfoProbe.cpp Do not accidently initialize NumDbgValueLost and NumDbgLineLost counts. 2011-03-16 00:27:57 +00:00
DebugLoc.cpp
Dominators.cpp Spruce up the error output. 2011-03-29 04:28:26 +00:00
Function.cpp Remove the code from Function::dropAllReferences which replaced 2010-12-07 19:56:51 +00:00
Globals.cpp hoist GlobalValue::removeDeadConstantUsers up to being a method on Constant. 2011-02-18 04:41:42 +00:00
GVMaterializer.cpp
InlineAsm.cpp Apply patch for use-after-free in InlineAsm constant handling, 2010-11-02 17:59:27 +00:00
Instruction.cpp AttrListPtr has an overloaded operator== which does this for us, we should use 2011-01-26 09:23:19 +00:00
Instructions.cpp enhance vmcore to know that udiv's can be exact, and add a trivial 2011-02-06 21:44:57 +00:00
IntrinsicInst.cpp
IRBuilder.cpp add methods to IRBuilder to create memcpy/memset/memmove. 2010-12-26 22:49:25 +00:00
LeakDetector.cpp Merge System into Support. 2010-11-29 18:16:10 +00:00
LeaksContext.h
LLVMContext.cpp Add missing standard headers. Patch by Joerg Sonnenberger! 2010-12-19 20:43:38 +00:00
LLVMContextImpl.cpp More SmallVectorImpls. 2010-10-12 00:15:27 +00:00
LLVMContextImpl.h now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the 2010-11-17 08:13:01 +00:00
Makefile
Metadata.cpp Add ArrayRef variant. 2011-03-04 01:20:33 +00:00
Module.cpp Clarify the ownership model of LLVMContext and Module. Namely, contexts own 2010-09-08 18:03:32 +00:00
Pass.cpp Another step towards getting rid of static ctors for pass registration: have INITIALIZE_PASS AND INITIALIZE_AG_PASS 2010-10-05 22:58:16 +00:00
PassManager.cpp Introduce DebugInfoProbe. This is used to monitor how llvm optimizer is treating debugging information. 2011-03-10 00:21:25 +00:00
PassRegistry.cpp Silence a warning from non-standard warning avoidance code. 2011-01-05 21:50:21 +00:00
PrintModulePass.cpp Now with fewer extraneous semicolons! 2010-10-07 22:25:06 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
TypesContext.h Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
TypeSymbolTable.cpp
Use.cpp Remove useless Tag enumeration. 2011-01-17 15:18:06 +00:00
User.cpp Simplify User::operator delete(). 2011-01-26 21:56:10 +00:00
Value.cpp teach Value::isDereferenceablePointer that byval arguments are always 2011-01-23 21:15:29 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for 2010-12-21 02:38:05 +00:00
Verifier.cpp Allow unnamed_addr on declarations. 2011-01-15 08:15:00 +00:00