> - (match_operand:V_VLSF 3 "register_operand")]))] > + (match_operand:V_VLSF 3 "nonmemory_operand")]))]
Even though the integer compares have nonmemory operand here their respective insn patterns don't (but constrain properly). I guess what's happening with register operand and a constant 0.0 is that we'd broadcast (vec_duplicate) instead? Can't we special-case the vector move pattern to allow constant zero in two ways? That would also allow to have a uarch-specific choice regarding .vv vs .vf at the proper spot. -- Regards Robin