Vladimir Yakovlev <vbyakov...@gmail.com> 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

Reply via email to