llvm-project/llvm/lib/IR
Bevin Hansson 6e561d1c94 [Intrinsic] Add fixed point saturating division intrinsics.
Summary:
This patch adds intrinsics and ISelDAG nodes for signed
and unsigned fixed-point division:

```
llvm.sdiv.fix.sat.*
llvm.udiv.fix.sat.*
```

These intrinsics perform scaled, saturating division
on two integers or vectors of integers. They are
required for the implementation of the Embedded-C
fixed-point arithmetic in Clang.

Reviewers: bjope, leonardchan, craig.topper

Subscribers: hiraditya, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71550
2020-02-24 10:50:52 +01:00
..
AbstractCallSite.cpp [Attributor] Use abstract call sites to determine associated arguments 2019-12-31 01:33:22 -06:00
AsmWriter.cpp [Assembler] Emit summary index flags 2020-02-18 17:49:54 +03:00
AttributeImpl.h [NFC] Factor out function to detect if an attribute has an argument. 2020-02-03 22:27:24 +01:00
Attributes.cpp [NFC] Factor out function to detect if an attribute has an argument. 2020-02-03 22:27:24 +01:00
AutoUpgrade.cpp [X86] Correct the implementation of the avx512 masked fmsubadd autoupgrade code to not leave the negate unconnected. 2020-02-07 15:27:05 -08:00
BasicBlock.cpp [IR] Update BasicBlock::validateInstrOrdering comments, NFC 2020-02-21 12:33:16 -08:00
CMakeLists.txt [Remarks] Extend the RemarkStreamer to support other emitters 2020-02-04 17:16:02 -08:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] fold fsub -0.0, undef to undef rather than NaN 2020-02-21 08:03:19 -05:00
ConstantFold.h Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
ConstantRange.cpp [ConstantRange] Respect destination bitwidth for cast results. 2019-12-27 17:38:34 +00:00
Constants.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
ConstantsContext.h Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Core.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DIBuilder.cpp [IRBuilder] Delete copy constructor 2020-02-17 18:14:48 +01:00
DataLayout.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DebugInfo.cpp [DebugInfo] Merge DebugInfoFinder::{processDeclare,processValue} into processVariable 2020-02-01 23:00:21 -08:00
DebugInfoMetadata.cpp Move the sysroot attribute from DIModule to DICompileUnit 2020-01-17 12:55:40 -08:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DiagnosticPrinter.cpp
Dominators.cpp [Dominators] Use Instruction::comesBefore for block-local queries, NFC 2020-02-20 16:41:51 -08:00
FPEnv.cpp Add missing newlines at EOF; NFC 2020-02-12 15:57:25 +00:00
Function.cpp Add <128 x i1> as an intrinsic type 2020-02-19 09:38:13 -06:00
GVMaterializer.cpp
Globals.cpp Implement -fsemantic-interposition 2020-01-31 14:02:33 +01:00
IRBuilder.cpp Reapply [IRBuilder] Always respect inserter/folder 2020-02-19 20:51:38 +01:00
IRPrintingPasses.cpp [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Instructions.cpp Reapply: [SVE] Fix bug in simplification of scalable vector instructions 2020-02-05 10:00:09 -08:00
IntrinsicInst.cpp [FPEnv] Divide macro INSTRUCTION into INSTRUCTION and DAG_INSTRUCTION, 2020-01-27 10:38:05 +08:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp [Remarks] Fix gcc build 2020-02-04 17:43:59 -08:00
LLVMContextImpl.cpp Make dropTriviallyDeadConstantArrays not quadratic 2020-01-21 16:06:46 +01:00
LLVMContextImpl.h [Remarks] Fix gcc build 2020-02-04 17:43:59 -08:00
LLVMRemarkStreamer.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
LegacyPassManager.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MDBuilder.cpp Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
Metadata.cpp [WPD/VFE] Always emit vcall_visibility metadata for -fwhole-program-vtables 2020-01-23 11:36:01 -08:00
MetadataImpl.h
Module.cpp RNG: Take pass name as argument instead of pass pointer. 2020-01-31 14:21:40 -05:00
ModuleSummaryIndex.cpp [Assembler] Emit summary index flags 2020-02-18 17:49:54 +03:00
Operator.cpp
OptBisect.cpp Fix IR/Analysis layering issue with OptBisect 2019-02-28 04:00:55 +00:00
Pass.cpp [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
PassInstrumentation.cpp
PassManager.cpp Add PassManagerImpl.h to hide implementation details 2020-02-03 11:15:55 -08:00
PassRegistry.cpp
PassTimingInfo.cpp [Legacy][TimePasses] allow -time-passes reporting into a custom stream 2019-03-22 23:11:08 +00:00
ProfileSummary.cpp [PGO] Context sensitive PGO (part 2) 2019-02-28 19:55:07 +00:00
SafepointIRVerifier.cpp [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
Statepoint.cpp [CallSite removal] Migrate the statepoint GC infrastructure to use the 2019-02-11 07:42:30 +00:00
SymbolTableListTraitsImpl.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Type.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
TypeFinder.cpp [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Use.cpp
User.cpp Reinstate MSan suppression of PR24578. 2019-11-22 11:25:24 -08:00
Value.cpp Fix MSAN failure on Function destruction 2020-02-06 15:09:58 -08:00
ValueSymbolTable.cpp
Verifier.cpp [Intrinsic] Add fixed point saturating division intrinsics. 2020-02-24 10:50:52 +01:00