Vladimir Yakovlev <[email protected]> writes:
> I reproduced the failure and found reason of it. I understood haw it
> resolve and now I need small changes only - additional argument of
> EMIT_MODE_SET. Is it good fo trunk?
I'm not sure I understand why you need to know the instruction.
The x86 code was:
+ if (mode == AVX_U128_CLEAN)
+ {
+ if (insn)
+ {
+ rtx pat = PATTERN(insn);
+ if (!is_vzeroupper(pat) && !is_vzeroall(pat))
+ ix86_emit_vzeroupper ();
+ }
+ else
+ ix86_emit_vzeroupper ();
+ }
+ break;
But the pass should already know via MODE_AFTER that the mode is set to
AVX_U128_CLEAN by vzeroupper and vzeroall. Under what circumstances
do we think that we need to set the mode to AVX_U128_CLEAN immediately
before vzeroupper or vzeroall?
I'm probably making you repeat yourself here, sorry.
Richard