On 6/12/23 08:55, Robin Dapp wrote:
Hi,
this implements the vec_set and vec_extract patterns for integer and
floating-point data types. For vec_set we broadcast the insert value to
a vector register and then perform a vslideup with effective length 1 to
the requested index.
vec_extract is done by sliding down the requested element to index 0
and v(f)mv.[xf].s to a scalar register.
The patch does not include vector-vector extraction which
will be done at a later time.
The vec_set tests required a vector calling convention/ABI because
a vector is being returned. I'm currently experimenting with adding
preliminary vector ABI support locally and still finishing some tests
after discussing with Juzhe. Consequently, I would not push this
before ABI support is upstream.
I'm not sure how fast the vector ABI stuff is going to move. So I'd be
a bit leery of tying this work to the ABI effort, particularly if it's
just to test.
Could you use asms to force vec_set/vec_extract to cross register files?
Jeff