1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/test/Transforms
Andrea Di Biagio 6186490ec7 [InstCombine][X86] Improved folding of calls to Intrinsic::x86_sse4a_insertqi.
This patch teaches the instruction combiner how to fold a call to 'insertqi' if
the 'length field' (3rd operand) is set to zero, and if the sum between
field 'length' and 'bit index' (4th operand) is bigger than 64.

From the AMD64 Architecture Programmer's Manual:
1. If the sum of the bit index + length field is greater than 64, then the
   results are undefined;
2. A value of zero in the field length is defined as a length of 64.

This patch improves the existing combining logic for intrinsic 'insertqi'
adding extra checks to address both point 1. and point 2.

Differential Revision: http://reviews.llvm.org/D6583

llvm-svn: 224054
2014-12-11 20:44:59 +00:00
..
ADCE
AddDiscriminators Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
AlignmentFromAssumptions
ArgumentPromotion Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
AtomicExpand/ARM
BBVectorize
BranchFolding Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
CodeExtractor
CodeGenPrepare [CodeGenPrepare][AArch64] Fix a TLI legality check on iPTR to use a lowered instead. 2014-11-12 22:16:55 +00:00
ConstantHoisting
ConstantMerge
ConstProp
CorrelatedValuePropagation LazyValueInfo: Actually re-visit partially solved block-values in solveBlockValue() 2014-11-25 17:23:05 +00:00
DeadArgElim DebugInfo+DeadArgElimination: Ensure llvm::Function*s from debug info are updated even when DAE removes both varargs and non-varargs arguments on the same function. 2014-10-07 15:10:23 +00:00
DeadStoreElimination Parse 'ghccc' in .ll files as the GHC convention (cc 10) 2014-12-01 21:04:44 +00:00
EarlyCSE Tweak EarlyCSE to recognize series of dead stores 2014-11-18 17:46:32 +00:00
FunctionAttrs Normally an 'optnone' function goes through fast-isel, which does not 2014-11-03 18:19:26 +00:00
GCOVProfiling Fix test to use the right metadata node (reapply r223239 plus a fix) and also to use the correct path to the GCNO file. 2014-12-03 17:32:44 +00:00
GlobalDCE GlobalDCE: Don't drop any COMDAT members 2014-10-07 07:07:19 +00:00
GlobalOpt IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
GVN Relax an assert a bit to avoid a crash on unreachable code. 2014-12-01 02:55:24 +00:00
IndVarSimplify IndVarSimplify: Allow LFTR to fire more often 2014-11-18 02:20:58 +00:00
Inline The inliner needs to fix up debug information for llvm.dbg.declare, not only for llvm.dbg.value. 2014-12-11 12:41:10 +00:00
InstCombine [InstCombine][X86] Improved folding of calls to Intrinsic::x86_sse4a_insertqi. 2014-12-11 20:44:59 +00:00
InstMerge Use Alias Analysis to hoist 2 loads from diamond to the common predecessor basic block. 2014-11-02 08:03:05 +00:00
InstSimplify InstSimplify: Remove usesless %a parameter from tests 2014-12-11 12:56:17 +00:00
Internalize
IPConstantProp
JumpThreading LazyValueInfo: Actually re-visit partially solved block-values in solveBlockValue() 2014-11-25 17:23:05 +00:00
LCSSA
LICM [LICM] Avoind store sinking if no preheader is available 2014-12-02 14:22:34 +00:00
LoadCombine Use AA in LoadCombine 2014-11-03 23:19:16 +00:00
LoopDeletion
LoopIdiom Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
LoopReroll
LoopRotate llvm/test/Transforms/LoopRotate/nosimplifylatch.ll: Fix possibly mis-repeatedly-pasted test. 2014-10-29 23:05:12 +00:00
LoopSimplify
LoopStrengthReduce [ARM] Combine base-updating/post-incrementing vector load/stores. 2014-12-10 00:07:37 +00:00
LoopUnroll Fix a trip-count overflow issue in LoopUnroll. 2014-11-20 20:19:55 +00:00
LoopUnswitch
LoopVectorize PR21302. Vectorize only bottom-tested loops. 2014-12-02 22:59:06 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
MemCpyOpt Allow call-slop optzn for destinations with a suitable dereferenceable attribute 2014-10-16 19:43:08 +00:00
MergeFunc
MetaRenamer
ObjCARC Add back r222061 with a fix. 2014-11-17 02:28:27 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PruneEH
Reassociate Revert "[Reassociate] As the expression tree is rewritten make sure the operands are" 2014-11-19 23:21:20 +00:00
Reg2Mem
SampleProfile llvm/test/Transforms/SampleProfile/syntax.ll: Relax MISSING-FILE not to 2014-10-30 22:28:46 +00:00
Scalarizer Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
ScalarRepl Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
SCCP SCCP: overdefined calls cannot become constant 2014-11-07 08:54:19 +00:00
SeparateConstOffsetFromGEP/NVPTX [SeparateConstOffsetFromGEP] Fixed a bug related to unsigned modulo 2014-10-25 18:34:03 +00:00
SimplifyCFG Add some tests for SimplifyCFG's TurnSwitchRangeIntoICmp(). NFC. 2014-12-04 22:19:28 +00:00
Sink
SLPVectorizer Vectorize a reduction chain feeding into a 'return' statement. 2014-11-19 16:07:38 +00:00
SROA SROA: The alloca type isn't a candidate promotion type for vectors 2014-11-21 02:34:55 +00:00
StripSymbols Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
StructurizeCFG StructurizeCFG: Use LoopInfo analysis for better loop detection 2014-12-03 04:28:32 +00:00
TailCallElim Fix tail recursion elimination 2014-11-19 13:32:51 +00:00
TailDup
Util [SwitchLowering] Handle destinations on multiple phi instructions 2014-12-02 18:31:53 +00:00