13#ifndef LLVM_LIB_TARGET_X86_X86INTRINSICSINFO_H
14#define LLVM_LIB_TARGET_X86_X86INTRINSICSINFO_H
18#include "llvm/IR/IntrinsicsX86.h"
95#define X86_INTRINSIC_DATA(id, type, op0, op1) \
96 { Intrinsic::x86_##id, type, op0, op1 }
2157 "Intrinsic data tables should be sorted by Intrinsic ID");
2164 "Intrinsic data tables should have unique entries");
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
#define X86_INTRINSIC_DATA(id, type, op0, op1)
@ FMA
FMA - Perform a * b + c with no intermediate rounding step.
@ SINT_TO_FP
[SU]INT_TO_FP - These operators convert integers (whose interpreted sign depends on the first letter)...
@ FADD
Simple binary floating point operators.
@ MULHU
MULHU/MULHS - Multiply high - Multiply two integers of type iN, producing an unsigned/signed value of...
@ FP_EXTEND
X = FP_EXTEND(Y) - Extend a smaller FP type into a larger FP type.
@ TRUNCATE
TRUNCATE - Completely drop the high bits.
@ FMAX
Floating point max and min.
@ HADD
Integer horizontal add/sub.
@ BLENDV
Dynamic (non-constant condition) vector blend where only the sign bits of the condition elements are ...
@ ADDSUB
Combined add and sub on an FP vector.
@ FHADD
Floating point horizontal add/sub.
@ FMAXS
Scalar intrinsic floating point max and min.
@ FSETCCM
X86 FP SETCC, similar to above, but with output as an i1 mask and and a version with SAE.
@ FSETCC
X86 FP SETCC, implemented with CMP{cc}SS/CMP{cc}SD.
@ INSERTPS
Insert any element of a 4 x float vector into any element of a destination 4 x floatvector.
@ PSHUFB
Shuffle 16 8-bit values within a vector.
@ EXTRQI
SSE4A Extraction and Insertion.
@ PSADBW
Compute Sum of Absolute Differences.
@ DBPSADBW
Compute Double Block Packed Sum-Absolute-Differences.
@ FRSQRT
Floating point reciprocal-sqrt and reciprocal approximation.
This is an optimization pass for GlobalISel generic memory operations.
static const IntrinsicData * getIntrinsicWithChain(unsigned IntNo)
static const IntrinsicData * getIntrinsicWithoutChain(unsigned IntNo)
bool is_sorted(R &&Range, Compare C)
Wrapper function around std::is_sorted to check if elements in a range R are sorted with respect to a...
static void verifyIntrinsicTables()
auto lower_bound(R &&Range, T &&Value)
Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly...
@ INTR_TYPE_SCALAR_MASK_SAE
@ INTR_TYPE_3OP_SCALAR_MASK_SAE
@ INTR_TYPE_SCALAR_MASK_RND
static const IntrinsicData IntrinsicsWithChain[]
static const IntrinsicData IntrinsicsWithoutChain[]
bool operator==(const IntrinsicData &RHS) const
friend bool operator<(const IntrinsicData &LHS, unsigned Id)
bool operator<(const IntrinsicData &RHS) const