https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101989
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- Another testcase is from pr91796 __m256d copysign2_pd(__m256d from, __m256d to) { auto a = _mm256_castpd_si256(from); auto avx_signbit = _mm256_castsi256_pd(_mm256_slli_epi64(_mm256_cmpeq_epi64(a, a), 63)); return _mm256_or_pd(_mm256_and_pd(avx_signbit, from), _mm256_andnot_pd(avx_signbit, to)); // (avx_signbit & from) | (~avx_signbit & to) } Failed to match this instruction: (set (reg:V4DF 93) (ior:V4DF (and:V4DF (reg:V4DF 89) (reg:V4DF 95)) (and:V4DF (not:V4DF (reg:V4DF 89)) (reg:V4DF 96)))) Failed to match this instruction: