Andrew Stubbs <a...@codesourcery.com> writes: > One > comment: building a vector constant {0, 1, 2, 3, ...., 63} results in a > very large entry in the constant pool and an unnecessary memory load (it > literally has to use this sequence to generate the addresses to load the > constant!) Generating the sequence via VEC_SERIES would be a no-op, for > GCN, because we have an ABI-mandated register that already holds that > value. (Perhaps I have another piece missing here, IDK?)
A constant like that should become a CONST_VECTOR in RTL, so I think the way to handle it would be to treat such a CONST_VECTOR as a valid immediate operand, including providing an alternative for it in the move patterns. const_vec_series_p provides a quick way to test. Thanks, Richard