llvm-mirror/test/Transforms
Venkataramanan Kumar 36b1d49191 [InstCombine] Transform 1.0/sqrt(X) * X to X/sqrt(X)
These transforms will now be performed irrespective of the number of uses for the expression "1.0/sqrt(X)":
1.0/sqrt(X) * X => X/sqrt(X)
X * 1.0/sqrt(X) => X/sqrt(X)

We already handle more general cases, and we are intentionally not creating extra (and likely expensive)
fdiv ops in IR. This pattern is the exception to the rule because we always expect the Backend to reduce
X/sqrt(X) to sqrt(X), if it has the necessary (reassoc) fast-math-flags.

Ref: DagCombiner optimizes the X/sqrt(X) to sqrt(X).

Differential Revision: https://reviews.llvm.org/D86726
2020-09-02 08:23:48 -04:00
..
ADCE
AddDiscriminators
AggressiveInstCombine
AlignmentFromAssumptions Temporarily Revert "[AssumeBundles] Use operand bundles to encode alignment assumptions" 2020-07-16 11:54:04 -07:00
ArgumentPromotion [ArgPromotion] Replace all md uses of promoted values with undef. 2020-08-03 19:31:53 +01:00
AtomicExpand
Attributor [Attributor] Make use of AANoUndef in AAUndefinedBehavior 2020-09-02 16:08:03 +09:00
BDCE [BDCE] SExt -> ZExt when no sign bits is used and instruction has multiple uses 2020-07-10 08:34:53 +01:00
BlockExtractor
BranchFolding
CalledValuePropagation
CallSiteSplitting Re-enable "[InstCombine] Simplify boolean Phis with const inputs using CFG" 2020-07-16 16:09:08 +07:00
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor
CodeGenPrepare [X86][CGP] Add gather test cases for D86371. 2020-08-31 13:12:53 -07:00
ConstantHoisting
ConstantMerge
Coroutines Revert D85812 "[coroutine] should disable inline before calling coro split" 2020-08-24 11:41:05 -07:00
CorrelatedValuePropagation [CVP] Regenerate test checks (NFC) 2020-08-30 16:23:59 +02:00
CrossDSOCFI
DCE
DeadArgElim IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
DeadStoreElimination [DSE,MemorySSA] Check if Current is valid for elimination first. 2020-08-28 11:19:04 +01:00
DivRemPairs [ValueTracking] Let isGuaranteedNotToBeUndefOrPoison use canCreateUndefOrPoison 2020-07-20 09:21:39 +09:00
EarlyCSE [EarlyCSE] fold commutable intrinsics 2020-08-29 12:11:01 -04:00
EliminateAvailableExternally
EntryExitInstrumenter Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
ExpandMemCmp
FixIrreducible [fix-irreducible] Skip unreachable predecessors. 2020-07-11 10:08:44 -04:00
Float2Int
ForcedFunctionAttrs Force Remove Attribute 2020-08-19 17:30:13 -04:00
FunctionAttrs [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
FunctionImport
GCOVProfiling [gcov][test] Don't write a.gcno in CWD 2020-08-28 17:34:44 -07:00
GlobalDCE [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
GlobalMerge
GlobalOpt [GlobalOpt] Fix an incorrect Modified status 2020-08-20 11:52:09 +02:00
GlobalSplit
GuardWidening [NewPM][GuardWidening] Fix loop guard widening tests under NPM 2020-08-06 15:32:59 -07:00
GVN [IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try) 2020-08-31 16:01:19 -04:00
GVNHoist Fix PR45442: Bail out when MemorySSA information is not available 2020-08-13 11:25:58 -07:00
GVNSink [NFCI][SimplifyCFG] Guard common code hoisting with a (default-on) flag 2020-07-20 10:29:57 +03:00
HardwareLoops [SCEV] If Start>=RHS, simplify (Start smin RHS) = RHS for trip counts. 2020-08-03 17:22:42 +01:00
HotColdSplit [HotColdSplit] Add options for splitting cold functions in separate section 2020-08-09 08:48:12 -07:00
IndirectBrExpand
IndVarSimplify [Test] Simplify test by removing unneeded variable 2020-09-02 18:39:43 +07:00
InferAddressSpaces AMDGPU: Fix wrong type mangling in intrinsic test 2020-08-19 14:33:19 -04:00
InferFunctionAttrs [BuildLibCalls] Add argmemonly to more lib calls. 2020-08-28 09:50:38 +01:00
Inline [test][Inliner] Make always-inline.ll work with NPM 2020-08-27 10:00:54 -07:00
InstCombine [InstCombine] Transform 1.0/sqrt(X) * X to X/sqrt(X) 2020-09-02 08:23:48 -04:00
InstMerge
InstNamer
InstSimplify [InstSimplify] Protect against more poison in SimplifyWithOpReplaced (PR47322) 2020-08-29 21:59:39 +02:00
InterleavedAccess
Internalize
IRCE
JumpThreading Revert "[InstSimplify][EarlyCSE] Try to CSE PHI nodes in the same basic block" 2020-08-28 23:43:42 +00:00
LCSSA [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
LICM Revert "[Instruction] Add updateLocationAfterHoist helper" 2020-08-11 14:54:09 -07:00
LoadStoreVectorizer [AMDGPU] Reorganize GCN subtarget features for unaligned access 2020-08-21 12:26:31 +02:00
LoopDataPrefetch Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
LoopDeletion [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
LoopDistribute [SCEVExpander] Avoid re-using existing casts if it means updating users. 2020-08-09 13:25:17 +01:00
LoopFusion [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
LoopIdiom [LoopIdiomRecognizePass] Options to disable part or the entire Loop Idiom Recognize Pass 2020-09-01 13:59:24 +00:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Move instructions from preheader to outer loop header. 2020-08-10 12:41:33 +01:00
LoopLoadElim [LAA] Avoid adding pointers to the checks if they are not needed. 2020-07-30 19:21:14 +01:00
LoopPredication
LoopReroll [IR] Simplify Use::swap. NFCI. 2020-07-21 12:15:12 +01:00
LoopRotate [NewPM][LoopRotate] Rename rotate -> loop-rotate 2020-08-05 12:25:01 -07:00
LoopSimplify Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
LoopSimplifyCFG For some tests targeting SystemZ, -march=z13 ---> -mcpu=z13 2020-07-29 19:18:01 -07:00
LoopStrengthReduce [LoopIdiom,LSR] Add additional tests for SCEVExpander cleanups. 2020-08-21 13:48:31 +01:00
LoopTransformWarning
LoopUnroll [Value][InstCombine] Fix one-use checks in PHI-of-op -> Op-of-PHI[s] transforms to be one-user checks 2020-08-26 20:20:41 +03:00
LoopUnrollAndJam [tbaa] Rename type-based-aa -> tbaa 2020-07-30 19:51:35 -07:00
LoopUnswitch Reland "[LoopUnswitch] Fix incorrect Modified status" 2020-08-20 11:52:09 +02:00
LoopVectorize [LV] Interleave to expose ILP for small loops with scalar reductions. 2020-09-01 19:47:32 +00:00
LoopVersioning [NewPM][LoopVersioning] Port LoopVersioning to NPM 2020-08-03 10:32:09 -07:00
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Use TileInfo to create tiled loop nest for matrix multiply. 2020-07-20 21:11:53 +01:00
LowerSwitch
LowerTypeTests
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Teach promote to register about droppable instructions 2020-07-24 15:15:38 -05:00
MemCpyOpt Rename scoped-noalias -> scoped-noalias-aa 2020-07-24 12:14:27 -07:00
MergeFunc
MergeICmps
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN [NewGVN] add test for commutative intrinsic; NFC 2020-08-30 16:33:45 -04:00
ObjCARC [ObjC][ARC] In HandlePotentialAlterRefCount, check whether an 2020-08-28 17:45:14 -07:00
OpenMP [Attributor] Make use of AANoUndef in AAUndefinedBehavior 2020-09-02 16:08:03 +09:00
PartiallyInlineLibCalls
PGOProfile [Value][InstCombine] Fix one-use checks in PHI-of-op -> Op-of-PHI[s] transforms to be one-user checks 2020-08-26 20:20:41 +03:00
PhaseOrdering Temporairly revert "[SimplifyCFG][LoopRotate] SimplifyCFG: disable common instruction hoisting by default, enable late in pipeline" 2020-08-22 00:33:22 +03:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate [test] Rewrite various tests to not use constprop 2020-08-26 12:57:12 -07:00
Reg2Mem
RewriteStatepointsForGC
SafeStack [StackSafety] Ignore allocas with partial lifetime markers 2020-08-27 13:54:41 -07:00
SampleProfile [SampleFDO] Enhance profile remapping support for searching inline instance 2020-08-26 11:07:35 -07:00
ScalarizeMaskedMemIntrin [ScalarizeMaskedMemIntrin][X86] Refresh missed transform test cases from rGc0c3b9a25fee 2020-08-10 11:14:01 +01:00
Scalarizer [Scalarizer] Avoid updating the name of globals 2020-08-24 21:55:03 +02:00
SCCP [SCCP] Propagate inequalities 2020-08-04 20:20:52 +02:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch [NFCI][SimpleLoopUnswitch] Adjust CostKind query 2020-08-14 07:54:20 +01:00
SimplifyCFG [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
Sink [Sink][test] Add nounwind test and properly test convergent 2020-08-30 18:26:42 -07:00
SLPVectorizer [NewPM][test] Fix accelerate-vector-functions.ll under NPM 2020-08-25 10:50:14 -07:00
SpeculateAroundPHIs
SpeculativeExecution SpeculativeExecution: Fix for logic change introduced in D81730. 2020-07-09 15:45:23 +03:00
SROA [SROA] Improve handleling of assumes bundles by SROA 2020-08-28 21:55:45 +02:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG
SyntheticCountsPropagation
TailCallElim Revert "[TRE] allow TRE for non-capturing calls." 2020-07-13 00:39:48 +03:00
ThinLTOBitcodeWriter
TypePromotion/ARM
UnifyLoopExits
UniqueInternalLinkageNames
Util [NewPM] Pin -assumption-cache-tracker tests to legacy PM 2020-08-06 10:38:03 -07:00
VectorCombine [VectorCombine] allow vector loads with mismatched insert type 2020-09-02 08:11:36 -04:00
WholeProgramDevirt Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00