static LegalizerInfo::SizeAndActionsVec widen_1(const LegalizerInfo::SizeAndActionsVec &v) { assert(v.size() >= 1); assert(v[0].first > 1); LegalizerInfo::SizeAndActionsVec result = {{1, WidenScalar}, {2, Unsupported}}; addAndInterleaveWithUnsupported(result, v); auto Largest = result.back().first; result.push_back({Largest + 1, Unsupported}); return result; }
static LegalizerInfo::SizeAndActionsVec widen_1_8_16_narrowToLargest(const LegalizerInfo::SizeAndActionsVec &v) { assert(v.size() >= 1); assert(v[0].first > 17); LegalizerInfo::SizeAndActionsVec result = { {1, LegalizerInfo::WidenScalar}, {2, LegalizerInfo::Unsupported}, {8, LegalizerInfo::WidenScalar}, {9, LegalizerInfo::Unsupported}, {16, LegalizerInfo::WidenScalar}, {17, LegalizerInfo::Unsupported}}; addAndInterleaveWithUnsupported(result, v); auto Largest = result.back().first; result.push_back({Largest + 1, LegalizerInfo::NarrowScalar}); return result; }