1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/test/Transforms
Simon Pilgrim e2f3b489b8 [X86][SSE] Reimplement SSE fp2si conversion intrinsics instead of using generic IR
D20859 and D20860 attempted to replace the SSE (V)CVTTPS2DQ and VCVTTPD2DQ truncating conversions with generic IR instead.

It turns out that the behaviour of these intrinsics is different enough from generic IR that this will cause problems, INF/NAN/out of range values are guaranteed to result in a 0x80000000 value - which plays havoc with constant folding which converts them to either zero or UNDEF. This is also an issue with the scalar implementations (which were already generic IR and what I was trying to match).

This patch changes both scalar and packed versions back to using x86-specific builtins.

It also deals with the other scalar conversion cases that are runtime rounding mode dependent and can have similar issues with constant folding.

A companion clang patch is at D22105

Differential Revision: https://reviews.llvm.org/D22106

llvm-svn: 275981
2016-07-19 15:07:43 +00:00
..
ADCE
AddDiscriminators [PM] Port Add discriminator pass to new PM 2016-06-15 21:51:30 +00:00
AlignmentFromAssumptions [PM] Port AlignmentFromAssumptions to the new PM. 2016-06-15 06:18:01 +00:00
ArgumentPromotion Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
AtomicExpand Support expanding partial-word cmpxchg to full-word cmpxchg in AtomicExpandPass. 2016-06-17 18:11:48 +00:00
BBVectorize Revert "[ValueTracking] Teach computeKnownBits for PHI nodes to compute sign bit for a recurrence with a NSW addition." 2016-06-29 04:57:00 +00:00
BDCE
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantHoisting This implements a more optimal algorithm for selecting a base constant in 2016-07-14 07:44:20 +00:00
ConstantMerge
ConstProp [X86][SSE] Reimplement SSE fp2si conversion intrinsics instead of using generic IR 2016-07-19 15:07:43 +00:00
CorrelatedValuePropagation This converts a signed remainder instruction to unsigned remainder, which 2016-07-14 12:23:48 +00:00
CrossDSOCFI [PM] Port CrossDSOCFI to the new pass manager. 2016-07-09 03:25:35 +00:00
DCE
DeadArgElim [PM] Port DeadArgumentElimination to the new PM 2016-06-12 09:16:39 +00:00
DeadStoreElimination Revert "r275571 [DSE]Enhance shorthening MemIntrinsic based on OverlapIntervals" 2016-07-18 15:51:31 +00:00
EarlyCSE [EarlyCSE] Fold invariant loads 2016-06-16 20:47:57 +00:00
EliminateAvailableExternally
Float2Int [PM] Port float2int to the new pass manager 2016-06-24 23:32:02 +00:00
ForcedFunctionAttrs
FunctionAttrs Revert r275678, "Revert "Revert r275027 - Let FuncAttrs infer the 'returned' argument attribute"" 2016-07-18 03:23:25 +00:00
FunctionImport [PM] Port FunctionImport Pass to new PM 2016-07-18 21:22:24 +00:00
GCOVProfiling [PM] Port GCOVProfiler pass to the new pass manager 2016-06-05 05:12:23 +00:00
GlobalDCE
GlobalMerge
GlobalOpt IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
GuardWidening
GVN [GVNHoist] Change the key for VNtoInsns to a pair 2016-07-18 06:11:37 +00:00
IndVarSimplify Upgrade other old memset/memcpy signatures in tests causing buildbot failures with rL273568. 2016-06-23 16:34:52 +00:00
InferFunctionAttrs Reverting r275284 due to platform-specific test failures 2016-07-13 19:09:16 +00:00
Inline Implement callsite-hotness based inline cost for Sample-based PGO 2016-07-11 16:48:54 +00:00
InstCombine add tests for missed sext transform 2016-07-18 20:37:51 +00:00
InstMerge [PM] Port MergedLoadStoreMotion to the new pass manager, take two. 2016-06-17 19:10:09 +00:00
InstSimplify auto-generate checks 2016-07-18 20:06:51 +00:00
Internalize [Internalize] Test that __stack_chk_{guard, fail} are not internalized. 2016-06-05 19:08:54 +00:00
IPConstantProp
IRCE
JumpThreading [JumpThreading] PRE unordered loads 2016-07-14 19:21:15 +00:00
LCSSA [LCSSA] Post-process PHI-nodes created by SSAUpdate when constructing LCSSA form. 2016-07-18 19:05:08 +00:00
LICM New pass manager for LICM. 2016-07-12 22:37:48 +00:00
LoadCombine [LoadCombine] Combine Loads formed from GEPS with negative indexes 2016-06-19 06:14:56 +00:00
LoadStoreVectorizer Extended LoadStoreVectorizer to vectorize subchains. 2016-07-13 21:20:01 +00:00
LoopDataPrefetch [Kryo] Enable loop prefetcher. 2016-06-21 22:47:56 +00:00
LoopDeletion [PM] Port Dead Loop Deletion Pass to the new PM 2016-07-14 18:28:29 +00:00
LoopDistribute [LoopDist] This test does not require ASSERTS 2016-07-18 16:37:32 +00:00
LoopIdiom [PM] Port LoopIdiomRecognize Pass to new PM 2016-07-12 18:45:51 +00:00
LoopInterchange
LoopLoadElim [LLE] Don't hoist conditionally executed loads 2016-06-28 04:02:47 +00:00
LoopReroll [LoopReroll] Reroll loops with unordered atomic memory accesses 2016-07-19 00:23:54 +00:00
LoopRotate
LoopSimplify [LoopSimplify] Update LCSSA after separating nested loops. 2016-07-18 19:44:19 +00:00
LoopSimplifyCFG
LoopStrengthReduce [PM] Convert Loop Strength Reduce pass to new PM 2016-07-18 21:41:50 +00:00
LoopUnroll [LoopUnrollAnalyzer] Fix a bug in UnrolledInstAnalyzer::visitLoad. 2016-06-23 14:31:31 +00:00
LoopUnswitch [LoopUnswitch] Unswitch on conditions feeding into guards 2016-06-26 05:10:45 +00:00
LoopVectorize Recommit the patch "Use uniforms set to populate VecValuesToIgnore". 2016-07-19 00:50:43 +00:00
LoopVersioning [LoopVer] Update all existing PHIs in the exit block 2016-06-14 09:38:54 +00:00
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests [PM/IPO] Port LowerTypeTests to the new PassManager. 2016-07-11 18:10:06 +00:00
Mem2Reg [PM] Port Mem2Reg to the new pass manager. 2016-06-14 03:22:22 +00:00
MemCpyOpt [PM] Port MemCpyOpt to the new PM. 2016-06-14 02:44:55 +00:00
MergeFunc
MetaRenamer
NameAnonFunctions
NaryReassociate
ObjCARC
PartiallyInlineLibCalls
PGOProfile [ThinLTO] Perform profile-guided indirect call promotion 2016-07-17 14:47:01 +00:00
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Don't call undef in test case; NFC 2016-06-25 01:40:54 +00:00
PreISelIntrinsicLowering [PM] Port PreISelIntrinsicLowering to the new PM 2016-06-24 20:13:42 +00:00
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC
SafeStack StackColoring for SafeStack. 2016-06-29 20:37:43 +00:00
SampleProfile Tune the weight propagation algorithm for sample profile. 2016-07-11 16:40:17 +00:00
Scalarizer [Scalarizer] PR28108: Skip over nullptr rather than crashing on it. 2016-07-14 01:31:25 +00:00
SCCP [IPSCCP] Constant fold struct argument/instructions when all the lattice values are constant. 2016-07-14 02:51:41 +00:00
SeparateConstOffsetFromGEP [ReassociateGEP] Update tests to allow missing "inbounds" on certain GEPs. 2016-07-15 18:47:17 +00:00
SimplifyCFG Revert "[SimplifyCFG] Stop inserting calls to llvm.trap for UB" 2016-06-25 08:19:55 +00:00
Sink [Sink] Don't move calls to readonly functions across stores 2016-07-11 14:11:51 +00:00
SLPVectorizer [SLPVectorizer][X86] Added sqrt vectorization tests 2016-07-18 13:20:54 +00:00
SpeculativeExecution
SROA
StraightLineStrengthReduce [SLSR] Call getPointerSizeInBits with the correct address space. 2016-07-11 18:13:28 +00:00
StripDeadPrototypes
StripSymbols Fix strip-dead-debug-info test if path contains "bar". 2016-06-16 19:39:55 +00:00
StructurizeCFG StructurizeCFG: Fix inverting constantexpr conditions 2016-07-15 22:13:16 +00:00
TailCallElim [PM] Port TailCallElim 2016-07-06 23:48:41 +00:00
Util [MemorySSA] Update to the new shiny walker. 2016-07-19 01:29:15 +00:00
WholeProgramDevirt Print remarks from WholeProgramDevirt pass for each call site. 2016-07-12 02:38:37 +00:00