intel/brw: Add a new VEC() helper.

This gathers a number of sources into a contiguous vector register.
Eventually, the plan is that it will use a MOV for a single source,
or LOAD_PAYLOAD for multiple sources.  For now, it emits a series of
MOVs to allow us to rewrite a bunch of existing code to use the new
helper, then change them all over at once later.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28971>
This commit is contained in:
Kenneth Graunke
2024-01-03 08:06:36 -08:00
parent c194df565a
commit 3c867bf2c7
+12
View File
@@ -789,6 +789,18 @@ namespace brw {
return inst;
}
void
VEC(const fs_reg &dst, const fs_reg *src, unsigned sources) const
{
/* For now, this emits a series of MOVs to ease the transition
* to the new helper. The intention is to have this emit either
* a single MOV or a LOAD_PAYLOAD to fully initialize dst from a
* the list of sources.
*/
for (unsigned i = 0; i < sources; i++)
MOV(offset(dst, dispatch_width(), i), src[i]);
}
fs_inst *
SYNC(enum tgl_sync_function sync) const
{