LLVM: lib/Target/DirectX/DXILIntrinsicExpansion.cpp File Reference (original) (raw)
Go to the source code of this file.
Macros | |
---|---|
#define | DEBUG_TYPE "dxil-intrinsic-expansion" |
Variables | |
---|---|
DEBUG_TYPE | |
DXIL Intrinsic | Expansion |
DXIL Intrinsic | false |
◆ DEBUG_TYPE
#define DEBUG_TYPE "dxil-intrinsic-expansion"
◆ expandAbs()
◆ expandAnyOrAllIntrinsic()
Definition at line 253 of file DXILIntrinsicExpansion.cpp.
References assert(), Cond, llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateFCmpUNE(), llvm::IRBuilderBase::CreateICmpNE(), llvm::IRBuilderBase::CreateOr(), llvm::ElementCount::getFixed(), llvm::User::getOperand(), llvm::Type::getScalarType(), llvm::ConstantVector::getSplat(), I, llvm::Type::isFloatingPointTy(), llvm::Type::isVectorTy(), and X.
Referenced by expandIntrinsic().
◆ expandAtan2Intrinsic()
Definition at line 365 of file DXILIntrinsicExpansion.cpp.
References llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateFAdd(), llvm::IRBuilderBase::CreateFCmpOEQ(), llvm::IRBuilderBase::CreateFCmpOGE(), llvm::IRBuilderBase::CreateFCmpOLT(), llvm::IRBuilderBase::CreateFDiv(), llvm::IRBuilderBase::CreateFSub(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateSelect(), llvm::CallBase::getAttributes(), llvm::Instruction::getFastMathFlags(), llvm::User::getOperand(), llvm::CallInst::isTailCall(), llvm:🔢:pi, llvm::CallBase::setAttributes(), llvm::IRBuilderBase::setFastMathFlags(), llvm::CallInst::setTailCall(), X, and Y.
Referenced by expandIntrinsic().
◆ expandClampIntrinsic()
◆ expandCrossIntrinsic()
◆ expandDegreesIntrinsic()
◆ expandExpIntrinsic()
Definition at line 234 of file DXILIntrinsicExpansion.cpp.
References llvm::IRBuilderBase::CreateFMul(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::CallBase::getAttributes(), llvm::ElementCount::getFixed(), getNumElements(), llvm::User::getOperand(), llvm::Type::getScalarType(), llvm::ConstantVector::getSplat(), llvm::CallInst::isTailCall(), llvm::Type::isVectorTy(), llvm:🔢:log2ef, llvm::CallInst::setTailCall(), and X.
Referenced by expandIntrinsic().
◆ expandFloatDotIntrinsic() [1/2]
◆ expandFloatDotIntrinsic() [2/2]
◆ expandIntegerDotIntrinsic()
Definition at line 201 of file DXILIntrinsicExpansion.cpp.
References A, assert(), B, llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateMul(), llvm::User::getOperand(), llvm::Type::getScalarType(), I, llvm::Type::isIntegerTy(), and llvm::Type::isVectorTy().
Referenced by expandIntrinsic().
◆ expandIntrinsic()
Definition at line 525 of file DXILIntrinsicExpansion.cpp.
References llvm::Instruction::eraseFromParent(), expandAbs(), expandAnyOrAllIntrinsic(), expandAtan2Intrinsic(), expandClampIntrinsic(), expandCrossIntrinsic(), expandDegreesIntrinsic(), expandExpIntrinsic(), expandFloatDotIntrinsic(), expandIntegerDotIntrinsic(), expandLerpIntrinsic(), expandLog10Intrinsic(), expandLogIntrinsic(), expandNormalizeIntrinsic(), expandPowIntrinsic(), expandRadiansIntrinsic(), expandSignIntrinsic(), expandStepIntrinsic(), expandVecReduceAdd(), F, and llvm::Value::replaceAllUsesWith().
Referenced by expansionIntrinsics().
◆ expandLerpIntrinsic()
◆ expandLog10Intrinsic()
◆ expandLogIntrinsic()
static Value * expandLogIntrinsic ( CallInst * Orig, float LogConstVal = numbers::ln2f ) | static |
---|
Definition at line 304 of file DXILIntrinsicExpansion.cpp.
References llvm::IRBuilderBase::CreateFMul(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::CallBase::getAttributes(), llvm::ElementCount::getFixed(), getNumElements(), llvm::User::getOperand(), llvm::Type::getScalarType(), llvm::ConstantVector::getSplat(), llvm::CallInst::isTailCall(), llvm::Type::isVectorTy(), llvm::CallInst::setTailCall(), and X.
Referenced by expandIntrinsic(), and expandLog10Intrinsic().
◆ expandNormalizeIntrinsic()
static Value * expandNormalizeIntrinsic ( CallInst * Orig) | static |
---|
Definition at line 328 of file DXILIntrinsicExpansion.cpp.
References llvm::IRBuilderBase::CreateFDiv(), llvm::IRBuilderBase::CreateFMul(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateVectorSplat(), expandFloatDotIntrinsic(), llvm::User::getOperand(), llvm::Type::getScalarType(), llvm::Value::getType(), llvm::APFloat::isZero(), llvm::report_fatal_error(), and X.
Referenced by expandIntrinsic().
◆ expandPowIntrinsic()
◆ expandRadiansIntrinsic()
◆ expandSignIntrinsic()
Definition at line 499 of file DXILIntrinsicExpansion.cpp.
References assert(), llvm::IRBuilderBase::CreateFCmpOLT(), llvm::IRBuilderBase::CreateICmpSLT(), llvm::IRBuilderBase::CreateSub(), llvm::IRBuilderBase::CreateZExt(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Type::getScalarType(), llvm::Value::getType(), llvm::Type::isFloatingPointTy(), llvm::Type::isIntegerTy(), RetTy, and X.
Referenced by expandIntrinsic().
◆ expandStepIntrinsic()
◆ expandVecReduceAdd()
◆ expansionIntrinsics()
static bool expansionIntrinsics ( Module & M) | static |
---|