def i64x8 : ValueType<512, 195>; // 8 Consecutive GPRs (AArch64)
def aarch64svcount
: ValueType<16, 196>; // AArch64 predicate-as-counter
+def spirvbuiltin : ValueType<0, 197>; // SPIR-V's builtin type
def token : ValueType<0, 248>; // TokenTy
def MetadataVT : ValueType<0, 249>; // Metadata
x86amx = 194, // This is an X86 AMX value
i64x8 = 195, // 8 Consecutive GPRs (AArch64)
aarch64svcount = 196, // AArch64 predicate-as-counter
+ spirvbuiltin = 197, // SPIR-V's builtin type
FIRST_VALUETYPE = 1, // This is always the beginning of the list.
- LAST_VALUETYPE = aarch64svcount, // This always remains at the end of the list.
+ LAST_VALUETYPE = spirvbuiltin, // This always remains at the end of the list.
VALUETYPE_SIZE = LAST_VALUETYPE + 1,
// This is the current maximum for LAST_VALUETYPE.
case v2048i32:
case v2048f32: return TypeSize::Fixed(65536);
case funcref:
- case externref: return TypeSize::Fixed(0); // opaque type
+ case externref:
+ case spirvbuiltin:
+ return TypeSize::Fixed(0); // opaque type
}
}
case MVT::externref: return "externref";
case MVT::aarch64svcount:
return "aarch64svcount";
+ case MVT::spirvbuiltin:
+ return "spirvbuiltin";
}
}
case Type::DoubleTyID: return MVT(MVT::f64);
case Type::X86_FP80TyID: return MVT(MVT::f80);
case Type::X86_MMXTyID: return MVT(MVT::x86mmx);
- case Type::TargetExtTyID:
- if (cast<TargetExtType>(Ty)->getName() == "aarch64.svcount")
+ case Type::TargetExtTyID: {
+ TargetExtType *TargetExtTy = cast<TargetExtType>(Ty);
+ if (TargetExtTy->getName() == "aarch64.svcount")
return MVT(MVT::aarch64svcount);
+ else if (TargetExtTy->getName().starts_with("spirv."))
+ return MVT(MVT::spirvbuiltin);
if (HandleUnknown)
return MVT(MVT::Other);
llvm_unreachable("Unknown target ext type!");
+ }
case Type::X86_AMXTyID: return MVT(MVT::x86amx);
case Type::FP128TyID: return MVT(MVT::f128);
case Type::PPC_FP128TyID: return MVT(MVT::ppcf128);