aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/CodeGenTarget.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-07-29 20:15:26 +0000
committerDimitry Andric <dim@FreeBSD.org>2021-07-29 20:15:26 +0000
commit344a3780b2e33f6ca763666c380202b18aab72a3 (patch)
treef0b203ee6eb71d7fdd792373e3c81eb18d6934dd /llvm/utils/TableGen/CodeGenTarget.cpp
parentb60736ec1405bb0a8dd40989f67ef4c93da068ab (diff)
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp
index 8f6d212df5ec..7311819f77ff 100644
--- a/llvm/utils/TableGen/CodeGenTarget.cpp
+++ b/llvm/utils/TableGen/CodeGenTarget.cpp
@@ -99,6 +99,8 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v64i8: return "MVT::v64i8";
case MVT::v128i8: return "MVT::v128i8";
case MVT::v256i8: return "MVT::v256i8";
+ case MVT::v512i8: return "MVT::v512i8";
+ case MVT::v1024i8: return "MVT::v1024i8";
case MVT::v1i16: return "MVT::v1i16";
case MVT::v2i16: return "MVT::v2i16";
case MVT::v3i16: return "MVT::v3i16";
@@ -108,11 +110,15 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v32i16: return "MVT::v32i16";
case MVT::v64i16: return "MVT::v64i16";
case MVT::v128i16: return "MVT::v128i16";
+ case MVT::v256i16: return "MVT::v256i16";
+ case MVT::v512i16: return "MVT::v512i16";
case MVT::v1i32: return "MVT::v1i32";
case MVT::v2i32: return "MVT::v2i32";
case MVT::v3i32: return "MVT::v3i32";
case MVT::v4i32: return "MVT::v4i32";
case MVT::v5i32: return "MVT::v5i32";
+ case MVT::v6i32: return "MVT::v6i32";
+ case MVT::v7i32: return "MVT::v7i32";
case MVT::v8i32: return "MVT::v8i32";
case MVT::v16i32: return "MVT::v16i32";
case MVT::v32i32: return "MVT::v32i32";
@@ -124,6 +130,7 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v2048i32: return "MVT::v2048i32";
case MVT::v1i64: return "MVT::v1i64";
case MVT::v2i64: return "MVT::v2i64";
+ case MVT::v3i64: return "MVT::v3i64";
case MVT::v4i64: return "MVT::v4i64";
case MVT::v8i64: return "MVT::v8i64";
case MVT::v16i64: return "MVT::v16i64";
@@ -132,6 +139,7 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v128i64: return "MVT::v128i64";
case MVT::v256i64: return "MVT::v256i64";
case MVT::v1i128: return "MVT::v1i128";
+ case MVT::v1f16: return "MVT::v1f16";
case MVT::v2f16: return "MVT::v2f16";
case MVT::v3f16: return "MVT::v3f16";
case MVT::v4f16: return "MVT::v4f16";
@@ -140,6 +148,8 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v32f16: return "MVT::v32f16";
case MVT::v64f16: return "MVT::v64f16";
case MVT::v128f16: return "MVT::v128f16";
+ case MVT::v256f16: return "MVT::v256f16";
+ case MVT::v512f16: return "MVT::v512f16";
case MVT::v2bf16: return "MVT::v2bf16";
case MVT::v3bf16: return "MVT::v3bf16";
case MVT::v4bf16: return "MVT::v4bf16";
@@ -153,6 +163,8 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v3f32: return "MVT::v3f32";
case MVT::v4f32: return "MVT::v4f32";
case MVT::v5f32: return "MVT::v5f32";
+ case MVT::v6f32: return "MVT::v6f32";
+ case MVT::v7f32: return "MVT::v7f32";
case MVT::v8f32: return "MVT::v8f32";
case MVT::v16f32: return "MVT::v16f32";
case MVT::v32f32: return "MVT::v32f32";
@@ -164,6 +176,7 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::v2048f32: return "MVT::v2048f32";
case MVT::v1f64: return "MVT::v1f64";
case MVT::v2f64: return "MVT::v2f64";
+ case MVT::v3f64: return "MVT::v3f64";
case MVT::v4f64: return "MVT::v4f64";
case MVT::v8f64: return "MVT::v8f64";
case MVT::v16f64: return "MVT::v16f64";
@@ -209,6 +222,7 @@ StringRef llvm::getEnumName(MVT::SimpleValueType T) {
case MVT::nxv8f16: return "MVT::nxv8f16";
case MVT::nxv16f16: return "MVT::nxv16f16";
case MVT::nxv32f16: return "MVT::nxv32f16";
+ case MVT::nxv1bf16: return "MVT::nxv1bf16";
case MVT::nxv2bf16: return "MVT::nxv2bf16";
case MVT::nxv4bf16: return "MVT::nxv4bf16";
case MVT::nxv8bf16: return "MVT::nxv8bf16";
@@ -251,9 +265,9 @@ CodeGenTarget::CodeGenTarget(RecordKeeper &records)
: Records(records), CGH(records) {
std::vector<Record*> Targets = Records.getAllDerivedDefinitions("Target");
if (Targets.size() == 0)
- PrintFatalError("ERROR: No 'Target' subclasses defined!");
+ PrintFatalError("No 'Target' subclasses defined!");
if (Targets.size() != 1)
- PrintFatalError("ERROR: Multiple subclasses of Target defined!");
+ PrintFatalError("Multiple subclasses of Target defined!");
TargetRec = Targets[0];
}
@@ -656,6 +670,7 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R,
isWillReturn = false;
isCold = false;
isNoDuplicate = false;
+ isNoMerge = false;
isConvergent = false;
isSpeculatable = false;
hasSideEffects = false;
@@ -845,6 +860,8 @@ void CodeGenIntrinsic::setProperty(Record *R) {
canThrow = true;
else if (R->getName() == "IntrNoDuplicate")
isNoDuplicate = true;
+ else if (R->getName() == "IntrNoMerge")
+ isNoMerge = true;
else if (R->getName() == "IntrConvergent")
isConvergent = true;
else if (R->getName() == "IntrNoReturn")