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