Requested in D53679.
llvm-svn: 345288
ArrayRef<LLT> Types;
struct MemDesc {
- uint64_t Size;
+ uint64_t SizeInBits;
AtomicOrdering Ordering;
};
SmallVector<TypePairAndMemSize, 4> TypesAndMemSize = TypesAndMemSizeInit;
return [=](const LegalityQuery &Query) {
TypePairAndMemSize Match = {Query.Types[TypeIdx0], Query.Types[TypeIdx1],
- Query.MMODescrs[MMOIdx].Size};
+ Query.MMODescrs[MMOIdx].SizeInBits};
return std::find(TypesAndMemSize.begin(), TypesAndMemSize.end(), Match) !=
TypesAndMemSize.end();
};
LegalityPredicate LegalityPredicates::memSizeInBytesNotPow2(unsigned MMOIdx) {
return [=](const LegalityQuery &Query) {
- return !isPowerOf2_32(Query.MMODescrs[MMOIdx].Size /* In Bytes */);
+ return !isPowerOf2_32(Query.MMODescrs[MMOIdx].SizeInBits / 8);
};
}
OS << Opcode << ", MMOs={";
for (const auto &MMODescr : MMODescrs) {
- OS << MMODescr.Size << ", ";
+ OS << MMODescr.SizeInBits << ", ";
}
OS << "}";
.unsupportedIfMemSizeNotPow2()
// Lower any any-extending loads left into G_ANYEXT and G_LOAD
.lowerIf([=](const LegalityQuery &Query) {
- return Query.Types[0].getSizeInBits() != Query.MMODescrs[0].Size;
+ return Query.Types[0].getSizeInBits() != Query.MMODescrs[0].SizeInBits;
})
.clampNumElements(0, v2s32, v2s32);
.unsupportedIfMemSizeNotPow2()
.lowerIf([=](const LegalityQuery &Query) {
return Query.Types[0].isScalar() &&
- Query.Types[0].getSizeInBits() != Query.MMODescrs[0].Size;
+ Query.Types[0].getSizeInBits() != Query.MMODescrs[0].SizeInBits;
})
.clampNumElements(0, v2s32, v2s32);