================ @@ -424,72 +432,87 @@ const std::array<SVEEmitter::ReinterpretTypeInfo, 12> SVEEmitter::Reinterprets = //===----------------------------------------------------------------------===// std::string SVEType::builtin_str() const { - std::string S; - if (isVoid()) - return "v"; + std::string OutStr; if (isScalarPredicate()) return "b"; if (isSvcount()) return "Qa"; - if (isVoidPointer()) - S += "v"; - else if (!isFloatingPoint()) - switch (ElementBitwidth) { - case 1: S += "b"; break; - case 8: S += "c"; break; - case 16: S += "s"; break; - case 32: S += "i"; break; - case 64: S += "Wi"; break; - case 128: S += "LLLi"; break; - default: llvm_unreachable("Unhandled case!"); - } - else if (isFloat()) + if (isVoid()) { + OutStr += "v"; + if (!isPointer()) + return OutStr; + } else if (isFloat()) { switch (ElementBitwidth) { - case 16: S += "h"; break; - case 32: S += "f"; break; - case 64: S += "d"; break; - default: llvm_unreachable("Unhandled case!"); + case 16: + OutStr += "h"; + break; + case 32: + OutStr += "f"; + break; + case 64: + OutStr += "d"; + break; + default: + llvm_unreachable("Unhandled float type!"); } - else if (isBFloat()) { + } else if (isBFloat()) { assert(ElementBitwidth == 16 && "Not a valid BFloat."); - S += "y"; + OutStr += "y"; } else if (isMFloat()) { assert(ElementBitwidth == 8 && "Not a valid MFloat."); - S += "m"; - } - - if (!isFloatingPoint()) { - if ((isChar() || isPointer()) && !isVoidPointer()) { - // Make chars and typed pointers explicitly signed. - if (Signed) - S = "S" + S; - else if (!Signed) - S = "U" + S; - } else if (!isVoidPointer() && !Signed) { - S = "U" + S; + OutStr += "m"; + } else { ---------------- SpencerAbson wrote:
Having looked at it again, it looks like is a bug with how we emit `MFloat8`. Since in the existing code, it also satisfies `!isFloatingPoint`, it would be emitted as `'c'` and not `'m'`, and there is no code in ASTContext to handle `'m'` anyway, so this patch would break something like https://github.com/llvm/llvm-project/pull/116959 - I'll need to check what our intended approach is. Thanks! https://github.com/llvm/llvm-project/pull/117717 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits