Before, we were only copying the first N channels, where N is the size
of the SSA destination, which is fine for per-component instructions,
but non-per-component instructions like fdot3 can have more source
components than destination components. Fix this using the helper
function introduced in the last patch.
v2: use new helper name
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
return false;
nir_load_const_instr* load_const = nir_instr_as_load_const(src_instr);
- for (unsigned j = 0; j < instr->dest.dest.ssa.num_components; j++) {
+ for (unsigned j = 0; j < nir_ssa_alu_instr_src_components(instr, i);
+ j++) {
src[i].u[j] = load_const->value.u[instr->src[i].swizzle[j]];
}