Currently this routine is only setup to return true if you're extracting half of a vector. But we should also be reporting that extracting a quarter is cheap too.
Don't have a test case just happened to notice.
Differential D36638
[AVX512] Correct isExtractSubvectorCheap so that it will return true for extracting 128-bits from the upper 256-bits of a 512-bit vector craig.topper on Aug 11 2017, 2:24 PM. Authored by
Details Currently this routine is only setup to return true if you're extracting half of a vector. But we should also be reporting that extracting a quarter is cheap too. Don't have a test case just happened to notice.
Diff Detail
Event TimelineComment Actions I also wonder if this interface shouldn't take the source type as input. In case some other target has multiple legal vector sizes but can't extract a quarter of vector like x86 can. Comment Actions Update to include the correct answer for mask registers. Which seems to be that will allow any extract of a 0 index and otherwise only extracts of upper half. |