1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/include/llvm/CodeGen
Elena Demikhovsky 36a2243ab7 Masked Vector Load and Store Intrinsics.
Introduced new target-independent intrinsics in order to support masked vector loads and stores. The loop vectorizer optimizes loops containing conditional memory accesses by generating these intrinsics for existing targets AVX2 and AVX-512. The vectorizer asks the target about availability of masked vector loads and stores.
Added SDNodes for masked operations and lowering patterns for X86 code generator.
Examples:
<16 x i32> @llvm.masked.load.v16i32(i8* %addr, <16 x i32> %passthru, i32 4 /* align */, <16 x i1> %mask)
declare void @llvm.masked.store.v8f64(i8* %addr, <8 x double> %value, i32 4, <8 x i1> %mask)

Scalarizer for other targets (not AVX2/AVX-512) will be done in a separate patch.

http://reviews.llvm.org/D6191

llvm-svn: 222632
2014-11-23 08:07:43 +00:00
..
PBQP [PBQP] Unique allowed-sets for nodes in the PBQP graph and use pairs of these 2014-10-27 17:44:25 +00:00
Analysis.h Allow the use of functions as typeinfo in landingpad clauses 2014-11-14 00:35:50 +00:00
AsmPrinter.h Make AsmPrinter::EmitLabelOffsetDifference a static helper and simplify. 2014-10-21 00:25:49 +00:00
CalcSpillWeights.h [PBQP] Tweak spill costs and coalescing benefits 2014-11-04 20:51:24 +00:00
CallingConvLower.h Renamed CCState members that appear to misspell 'Processed' as 'Proceed'. NFC. 2014-11-01 19:32:23 +00:00
CommandFlags.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
DAGCombine.h
DFAPacketizer.h Remove the TargetMachine from DFAPacketizer since it was only 2014-10-14 01:03:16 +00:00
EdgeBundles.h
FastISel.h [FastISel][AArch64] Add lowering support for frem. 2014-09-15 22:07:49 +00:00
ForwardControlFlowIntegrity.h Remove redundant virtual on overriden functions. 2014-11-14 19:06:36 +00:00
FunctionLoweringInfo.h Remove uses of the TargetMachine from FunctionLoweringInfo 2014-10-09 00:57:31 +00:00
GCMetadata.h
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
ISDOpcodes.h Masked Vector Load and Store Intrinsics. 2014-11-23 08:07:43 +00:00
JumpInstrTables.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
LatencyPriorityQueue.h
LexicalScopes.h [DebugInfo] Remove LexicalScopes::isCurrentFunctionScope and CSE a use of LexicalScopes::getCurrentFunctionScope 2014-10-23 00:06:27 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h
LiveIntervalAnalysis.h Access the subtarget off of the MachineFunction rather than 2014-10-14 06:26:53 +00:00
LiveIntervalUnion.h
LivePhysRegs.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
LiveRangeEdit.h Remove unnecessary getTarget call now that the subtarget is cached 2014-09-03 20:36:26 +00:00
LiveRegMatrix.h
LiveStackAnalysis.h
LiveVariables.h CodeGen/LiveVariables: hoist out code in nested loops 2014-08-25 01:59:49 +00:00
MachineBasicBlock.h CodeGen: assert an instruction is being inserted with the correct iterator. 2014-11-14 00:34:59 +00:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h
MachineCombinerPattern.h MachineCombiner Pass for selecting faster instruction 2014-08-03 21:35:39 +00:00
MachineConstantPool.h
MachineDominanceFrontier.h
MachineDominators.h Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
MachineFrameInfo.h Replace calls to get the subtarget and TargetFrameLowering with 2014-10-08 08:46:34 +00:00
MachineFunction.h Remove unused member variable. 2014-10-14 18:53:16 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h
MachineInstr.h Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
MachineInstrBuilder.h Work around bugs in MSVC "14" CTP 3's conversion logic 2014-10-31 23:19:46 +00:00
MachineInstrBundle.h
MachineJumpTableInfo.h
MachineLoopInfo.h
MachineMemOperand.h
MachineModuleInfo.h Allow the use of functions as typeinfo in landingpad clauses 2014-11-14 00:35:50 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Add MachineOperand::ChangeToFPImmediate and setFPImm 2014-09-28 19:24:59 +00:00
MachinePassRegistry.h
MachinePostDominators.h Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
MachineRegionInfo.h
MachineRegisterInfo.h CodeGen: switch raw array to std::vector 2014-08-25 00:28:31 +00:00
MachineScheduler.h Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs. 2014-08-20 20:57:26 +00:00
MachineSSAUpdater.h
MachineTraceMetrics.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MachineValueType.h Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
MachORelocation.h
Passes.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
PBQPRAConstraint.h Remove redundant virtual on overriden functions. 2014-11-14 19:06:36 +00:00
PseudoSourceValue.h
RegAllocPBQP.h [PBQP] Remove a spurious 'typename' keyword. This was causing an error on MSVC. 2014-10-27 17:59:51 +00:00
RegAllocRegistry.h
RegisterClassInfo.h
RegisterPressure.h
RegisterScavenging.h Changed the liveness tracking in the RegisterScavenger 2014-08-04 23:07:49 +00:00
ResourcePriorityQueue.h
RuntimeLibcalls.h Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
ScheduleDAG.h
ScheduleDAGInstrs.h Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs. 2014-08-20 20:57:26 +00:00
ScheduleDFS.h
ScheduleHazardRecognizer.h
SchedulerRegistry.h
ScoreboardHazardRecognizer.h
SelectionDAG.h Masked Vector Load and Store Intrinsics. 2014-11-23 08:07:43 +00:00
SelectionDAGISel.h Cache TargetLowering on SelectionDAGISel and update previous 2014-10-08 07:32:17 +00:00
SelectionDAGNodes.h Masked Vector Load and Store Intrinsics. 2014-11-23 08:07:43 +00:00
SlotIndexes.h
StackMapLivenessAnalysis.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
StackMaps.h The patchpoint lowering logic would crash with live constants equal to 2014-11-04 00:59:21 +00:00
StackProtector.h
TargetLoweringObjectFileImpl.h
TargetSchedule.h Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
ValueTypes.h
ValueTypes.td
VirtRegMap.h