nir/lower_to_source_mods: Stop turning add, sat, and neg into mov

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
Jason Ekstrand
2019-05-06 11:17:40 -05:00
parent 2a39788d03
commit cd73b6174b
2 changed files with 19 additions and 40 deletions
+6
View File
@@ -217,6 +217,9 @@ validate_alu_src(nir_alu_instr *instr, unsigned index, validate_state *state)
{
nir_alu_src *src = &instr->src[index];
if (instr->op == nir_op_fmov || instr->op == nir_op_imov)
assert(!src->abs && !src->negate);
unsigned num_components = nir_src_num_components(src->src);
for (unsigned i = 0; i < NIR_MAX_VEC_COMPONENTS; i++) {
validate_assert(state, src->swizzle[i] < NIR_MAX_VEC_COMPONENTS);
@@ -319,6 +322,9 @@ validate_alu_dest(nir_alu_instr *instr, validate_state *state)
{
nir_alu_dest *dest = &instr->dest;
if (instr->op == nir_op_fmov || instr->op == nir_op_imov)
assert(!dest->saturate);
unsigned dest_size = nir_dest_num_components(dest->dest);
/*
* validate that the instruction doesn't write to components not in the