https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88717
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-01-07 Ever confirmed|0 |1 --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to 刘袋鼠 from comment #1) > Pass_insert_vzeroupper uses mode_switch to insert `vzeroupper`. > > In function entry and functon body, 256bits/512bits registers are used ,so > it will set mode as `AVX_U128_DIRTY`. But for function exit no > 256bits/512bits register is returned, so `AVX_U128_CLEAN` is set. > > Then `case AVX_U128_CLEAN` will be triggered for mode switching, maybe we > should handle ix86_avx_u128_mode_exit. > When mode is AVX_U128_DIRTY at the function entry because of function caller mode is AVX_U128_DIRTY, we should set mode to AVX_U128_DIRTY at function exit. Will it work?