1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Transforms
Sanjay Patel 5a76bb2cd1 [InstCombine] allow SimplifyDemandedVectorElts to work with FP binops
We're a long way from D50992 and D51553, but this is where we have to start.
We weren't back-propagating undefs into binop constant values for anything but
add/sub/mul/and/or/xor. 

This is likely because we have to be careful about not introducing UB/poison 
with div/rem/shift. But I suspect we already are getting the poison part wrong 
for add/sub/mul (although it may not be possible to expose the bug currently
because we use SimplifyDemandedVectorElts from a limited set of opcodes).
See the discussion/implementation from D48987 and D49047.

This patch just enables functionality for FP ops because those do not have 
UB/poison potential.

llvm-svn: 343727
2018-10-03 21:44:59 +00:00
..
ADCE
AddDiscriminators
AggressiveInstCombine
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand AMDGPU: Expand atomicrmw nand in IR 2018-10-02 03:50:56 +00:00
BDCE
BlockExtractor
BranchFolding
CalledValuePropagation
CallSiteSplitting
CodeExtractor
CodeGenPrepare [CodeGen] Enable tail calls for functions with NonNull attributes. 2018-09-26 10:46:18 +00:00
ConstantHoisting
ConstantMerge
ConstProp
Coroutines
CorrelatedValuePropagation
CrossDSOCFI
DCE
DeadArgElim [deadargelim] Update dbg.value of 'unused' parameters 2018-09-24 10:01:24 +00:00
DeadStoreElimination
DivRemPairs
EarlyCSE [EarlyCSEwMemorySSA] Add MSSA verification and tests to make EarlyCSE failures easier to track. 2018-09-17 22:35:21 +00:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp/X86
Float2Int
ForcedFunctionAttrs
FunctionAttrs
FunctionImport
GCOVProfiling
GlobalDCE
GlobalMerge
GlobalOpt
GlobalSplit
GuardWidening
GVN
GVNHoist
GVNSink
HotColdSplit Add support for new pass manager 2018-10-03 05:55:20 +00:00
IndirectBrExpand
IndVarSimplify [IndVars] Remove unreasonable checks in rewriteLoopExitValues 2018-09-18 04:57:18 +00:00
InferAddressSpaces
InferFunctionAttrs
Inline [inline Cost] Don't mark functions accessing varargs as non-inlinable 2018-09-20 18:39:34 +00:00
InstCombine [InstCombine] allow SimplifyDemandedVectorElts to work with FP binops 2018-10-03 21:44:59 +00:00
InstMerge
InstNamer
InstSimplify
InterleavedAccess
Internalize
IPConstantProp
IRCE
JumpThreading
LCSSA
LICM
LoadStoreVectorizer AMDGPU: Fix private handling for allowsMisalignedMemoryAccesses 2018-09-24 13:18:15 +00:00
LoopDataPrefetch
LoopDeletion
LoopDistribute
LoopIdiom
LoopInstSimplify
LoopInterchange [LoopInterchange] Preserve LCSSA. 2018-09-26 19:34:25 +00:00
LoopLoadElim
LoopPredication
LoopReroll
LoopRotate [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
LoopSimplify
LoopSimplifyCFG
LoopStrengthReduce
LoopUnroll Remove LoopID metadata from the branch instruction 2018-09-26 01:03:21 +00:00
LoopUnrollAndJam
LoopUnswitch
LoopVectorize [LV][LAA] Vectorize loop invariant values stored into loop invariant address 2018-09-25 20:57:20 +00:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests
Mem2Reg
MemCpyOpt Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue 2018-09-21 05:17:42 +00:00
MergeFunc
MergeICmps Re-submitting changes in D51550 because it failed to patch. 2018-09-24 20:47:12 +00:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN
ObjCARC
PartiallyInlineLibCalls
PGOProfile
PhaseOrdering
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC
SafeStack
SampleProfile [SampleFDO] Add FunctionOffsetTable in compact binary format profile. 2018-09-14 20:52:59 +00:00
ScalarizeMaskedMemIntrin/X86 [ScalarizeMaskedMemIntrin] Use MinAlign to calculate alignment for the scalar load/stores to handle element types that are byte-sized but not powers of 2. 2018-09-28 03:35:37 +00:00
Scalarizer
SCCP [IPSCCP] Fix a problem with removing labels in a switch with undef condition 2018-09-20 09:00:17 +00:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch
SimplifyCFG
Sink
SLPVectorizer Fix vectorization of canonicalize 2018-09-17 13:24:30 +00:00
SpeculateAroundPHIs
SpeculativeExecution
SROA
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG
SyntheticCountsPropagation
TailCallElim
ThinLTOBitcodeWriter
Util
WholeProgramDevirt [ThinLTO] Efficiency fix for writing type id records in per-module indexes 2018-09-25 20:14:40 +00:00