*/
#include "nir.h"
-#include <main/imports.h>
/**
* SSA-based copy propagation
{
assert(instr->src[0].src.is_ssa);
- if (instr->op != nir_op_fmov &&
- instr->op != nir_op_imov)
+ if (instr->op != nir_op_mov)
return false;
if (instr->dest.saturate)
return false;
}
- return instr->op == nir_op_vec2 ||
- instr->op == nir_op_vec3 ||
- instr->op == nir_op_vec4;
+ assert(instr->dest.dest.is_ssa);
+ return nir_op_is_vec(instr->op);
}
static bool
nir_ssa_def *def;
unsigned new_swizzle[NIR_MAX_VEC_COMPONENTS] = {0, 0, 0, 0};
- if (alu_instr->op == nir_op_fmov ||
- alu_instr->op == nir_op_imov) {
+ if (alu_instr->op == nir_op_mov) {
for (unsigned i = 0; i < NIR_MAX_VEC_COMPONENTS; i++)
new_swizzle[i] = alu_instr->src[0].swizzle[src->swizzle[i]];
def = alu_instr->src[0].src.ssa;
nir_metadata_preserve(impl, nir_metadata_block_index |
nir_metadata_dominance);
} else {
-#ifndef NDEBUG
- impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+ nir_metadata_preserve(impl, nir_metadata_all);
}
return progress;