本文整理汇总了C++中tl::Type::is_float方法的典型用法代码示例。如果您正苦于以下问题:C++ Type::is_float方法的具体用法?C++ Type::is_float怎么用?C++ Type::is_float使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tl::Type
的用法示例。
在下文中一共展示了Type::is_float方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: casting_needs_reinterpr_or_pack
bool casting_needs_reinterpr_or_pack(TL::Type& casted_type, TL::Type& cast_type)
{
if (casted_type.is_float())
{
if (cast_type.is_float())
return false;
else
return true;
}
else if (casted_type.is_double())
{
if (cast_type.is_double())
return false;
else
return true;
}
else if (casted_type.is_signed_int()
|| casted_type.is_unsigned_int())
{
if (cast_type.is_signed_int()
|| cast_type.is_unsigned_int())
return false;
else
return true;
}
else if (casted_type.is_signed_short_int()
|| casted_type.is_unsigned_short_int())
{
if (cast_type.is_signed_short_int()
|| cast_type.is_unsigned_short_int())
return false;
else
return true;
}
else if (casted_type.is_signed_char()
|| casted_type.is_unsigned_char()
|| casted_type.is_char())
{
if (cast_type.is_signed_char()
|| cast_type.is_unsigned_char()
|| cast_type.is_char())
return false;
else
return true;
}
else
{
fatal_error("error: casting_needs_reinterpr_or_pack does not support this casting in HLT SIMD.\n");
}
}
示例2: visit
void NeonVectorBackend::visit(const Nodecl::VectorAdd& n)
{
walk(n.get_lhs());
walk(n.get_rhs());
TL::Type t = n.get_type();
ERROR_CONDITION(!t.is_vector(), "Invalid type", 0);
TL::Type element = t.vector_element();
ERROR_CONDITION(!element.is_float(), "Not implemented: %s", print_declarator(element.get_internal_type()));
TL::Symbol builtin_fun = TL::Scope::get_global_scope().get_symbol_from_name("vaddq_f32");
ERROR_CONDITION(!builtin_fun.is_valid(), "Symbol not found", 0);
n.replace(
Nodecl::FunctionCall::make(
builtin_fun.make_nodecl(/* set_ref_type */ true),
Nodecl::List::make(
n.get_lhs(),
n.get_rhs()),
/* alternate-name */ Nodecl::NodeclBase::null(),
/* function-form */ Nodecl::NodeclBase::null(),
n.get_type(),
n.get_locus()
)
);
}
示例3: visit
void KNCModuleVisitor::visit(const Nodecl::VectorBitwiseXor& node)
{
TL::Type type = node.get_type().basic_type();
// Intrinsic name
file << "_mm512_xor";
// Postfix
if (type.is_float())
{
file << "_ps";
}
else if (type.is_integral_type())
{
file << "_si128";
}
else
{
running_error("KNC Codegen: Node %s at %s has an unsupported type.",
ast_print_node_type(node.get_kind()),
node.get_locus_str().c_str());
}
file << "(";
walk(node.get_lhs());
file << ", ";
walk(node.get_rhs());
file << ")";
}