Changeset View
Changeset View
Standalone View
Standalone View
clang/lib/CodeGen/CGBuiltin.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 2,400 Lines • ▼ Show 20 Lines | EmitNonNullArgCheck(RValue::get(Src.getPointer()), E->getArg(0)->getType(), | ||||
E->getArg(0)->getExprLoc(), FD, 0); | E->getArg(0)->getExprLoc(), FD, 0); | ||||
Value *Result = MB.CreateColumnMajorLoad( | Value *Result = MB.CreateColumnMajorLoad( | ||||
Src.getPointer(), Align(Src.getAlignment().getQuantity()), Stride, | Src.getPointer(), Align(Src.getAlignment().getQuantity()), Stride, | ||||
IsVolatile, ResultTy->getNumRows(), ResultTy->getNumColumns(), | IsVolatile, ResultTy->getNumRows(), ResultTy->getNumColumns(), | ||||
"matrix"); | "matrix"); | ||||
return RValue::get(Result); | return RValue::get(Result); | ||||
} | } | ||||
case Builtin::BI__builtin_matrix_column_major_store: { | |||||
MatrixBuilder<CGBuilderTy> MB(Builder); | |||||
Value *Matrix = EmitScalarExpr(E->getArg(0)); | |||||
Address Dst = EmitPointerWithAlignment(E->getArg(1)); | |||||
Value *Stride = EmitScalarExpr(E->getArg(2)); | |||||
const auto *MatrixTy = E->getArg(0)->getType()->getAs<ConstantMatrixType>(); | |||||
auto *PtrTy = E->getArg(1)->getType()->getAs<PointerType>(); | |||||
assert(PtrTy && "arg1 must be of pointer type"); | |||||
bool IsVolatile = PtrTy->getPointeeType().isVolatileQualified(); | |||||
EmitNonNullArgCheck(RValue::get(Dst.getPointer()), E->getArg(1)->getType(), | |||||
E->getArg(1)->getExprLoc(), FD, 0); | |||||
Value *Result = MB.CreateColumnMajorStore( | |||||
Matrix, Dst.getPointer(), Align(Dst.getAlignment().getQuantity()), | |||||
Stride, IsVolatile, MatrixTy->getNumRows(), MatrixTy->getNumColumns()); | |||||
return RValue::get(Result); | |||||
} | |||||
case Builtin::BIfinite: | case Builtin::BIfinite: | ||||
case Builtin::BI__finite: | case Builtin::BI__finite: | ||||
case Builtin::BIfinitef: | case Builtin::BIfinitef: | ||||
case Builtin::BI__finitef: | case Builtin::BI__finitef: | ||||
case Builtin::BIfinitel: | case Builtin::BIfinitel: | ||||
case Builtin::BI__finitel: | case Builtin::BI__finitel: | ||||
case Builtin::BI__builtin_isinf: | case Builtin::BI__builtin_isinf: | ||||
case Builtin::BI__builtin_isfinite: { | case Builtin::BI__builtin_isfinite: { | ||||
▲ Show 20 Lines • Show All 14,211 Lines • Show Last 20 Lines |