Skip to content

Commit a9f0e6f

Browse files
committed
Refactor SVEType::str()
1 parent 3146eaa commit a9f0e6f

File tree

1 file changed

+45
-42
lines changed

1 file changed

+45
-42
lines changed

clang/utils/TableGen/SveEmitter.cpp

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -513,53 +513,56 @@ std::string SVEType::builtin_str() const {
513513
}
514514

515515
std::string SVEType::str() const {
516-
if (isPredicatePattern())
517-
return "enum svpattern";
516+
std::string TypeStr;
518517

519-
if (isPrefetchOp())
518+
switch (Kind) {
519+
case TypeKind::PrefetchOp:
520520
return "enum svprfop";
521-
522-
if (isFpm())
523-
return "fpm_t";
524-
525-
std::string S;
526-
if (isVoid())
527-
S += "void";
528-
else {
529-
if (isScalableVector() || isSvcount())
530-
S += "sv";
531-
532-
if (isFloat())
533-
S += "float";
534-
else if (isSvcount())
535-
S += "count";
536-
else if (isPredicate())
537-
S += "bool";
538-
else if (isBFloat())
539-
S += "bfloat";
540-
else if (isMFloat())
541-
S += "mfloat";
542-
else if (isSignedInteger())
543-
S += "int";
544-
else if (isUnsignedInteger())
545-
S += "uint";
546-
547-
if (!isPredicate() && !isSvcount())
548-
S += utostr(ElementBitwidth);
549-
if (isFixedLengthVector())
550-
S += "x" + utostr(getNumElements());
551-
if (NumVectors > 1)
552-
S += "x" + utostr(NumVectors);
553-
if (!isScalarPredicate())
554-
S += "_t";
521+
case TypeKind::PredicatePattern:
522+
return "enum svpattern";
523+
case TypeKind::Fpm:
524+
TypeStr += "fpm";
525+
break;
526+
case TypeKind::Void:
527+
TypeStr += "void";
528+
break;
529+
case TypeKind::Float:
530+
TypeStr += "float" + llvm::utostr(ElementBitwidth);
531+
break;
532+
case TypeKind::Svcount:
533+
TypeStr += "svcount";
534+
break;
535+
case TypeKind::Predicate:
536+
TypeStr += "bool";
537+
break;
538+
case TypeKind::BFloat16:
539+
TypeStr += "bfloat16";
540+
break;
541+
case TypeKind::MFloat8:
542+
TypeStr += "mfloat8";
543+
break;
544+
case TypeKind::SInt:
545+
TypeStr += "int" + llvm::utostr(ElementBitwidth);
546+
break;
547+
case TypeKind::UInt:
548+
TypeStr += "uint" + llvm::utostr(ElementBitwidth);
555549
}
556550

557-
if (Constant)
558-
S += " const";
559-
if (Pointer)
560-
S += " *";
551+
if (isFixedLengthVector())
552+
TypeStr += "x" + llvm::utostr(getNumElements());
553+
else if (isScalableVector())
554+
TypeStr = "sv" + TypeStr;
561555

562-
return S;
556+
if (NumVectors > 1)
557+
TypeStr += "x" + llvm::utostr(NumVectors);
558+
if (!isScalarPredicate() && !isVoid())
559+
TypeStr += "_t";
560+
if (isConstant())
561+
TypeStr += " const";
562+
if (isPointer())
563+
TypeStr += " *";
564+
565+
return TypeStr;
563566
}
564567

565568
void SVEType::applyTypespec(StringRef TS) {

0 commit comments

Comments
 (0)