https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122933
--- Comment #3 from LIU Hao <lh_mouse at 126 dot com> --- This behavior seems subject to `-mtune=`. These arguments result in correct code: * nocona * core2 * nehalem * corei7 * westmere * sandybridge * corei7-avx * ivybridge * core-avx-i * haswell * core-avx2 * broadwell * skylake * skylake-avx512 * cannonlake * icelake-client * rocketlake * icelake-server * cascadelake * tigerlake * cooperlake * sapphirerapids * emeraldrapids * alderlake * raptorlake * meteorlake * graniterapids * graniterapids-d * arrowlake * arrowlake-s * lunarlake * pantherlake * diamondrapids * wildcatlake * novalake * tremont * gracemont * sierraforest * grandridge * clearwaterforest * eden-x2 * nano * nano-1000 * nano-2000 * nano-3000 * nano-x2 * eden-x4 * nano-x4 * k8 * k8-sse3 * opteron * opteron-sse3 * athlon64 * athlon64-sse3 * athlon-fx * amdfam10 * barcelona * bdver1 * bdver2 * bdver3 * bdver4 * znver1 * znver2 * znver3 * znver4 * znver5 * btver1 * btver2 * generic These are broken: * bonnell * atom * silvermont * slm * goldmont * goldmont-plus * intel * lujiazui * yongfeng * shijidadao The issue has been there since at least GCC 11: https://gcc.godbolt.org/z/e7n6rvEsn
