i965: don't drop const initializers in vector splitting

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Rob Clark 2016-06-24 20:03:37 -04:00 committed by Rob Clark
parent f78a6b1ce3
commit 01ccb0d91e

View file

@ -372,6 +372,18 @@ brw_do_vector_splitting(exec_list *instructions)
ralloc_free(name);
if (entry->var->constant_initializer) {
ir_constant_data data = {0};
assert(entry->var->data.has_initializer);
if (entry->var->type->is_double()) {
data.d[0] = entry->var->constant_initializer->value.d[i];
} else {
data.u[0] = entry->var->constant_initializer->value.u[i];
}
entry->components[i]->data.has_initializer = true;
entry->components[i]->constant_initializer = new(entry->components[i]) ir_constant(type, &data);
}
entry->var->insert_before(entry->components[i]);
}