https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119067
--- Comment #4 from Sam James <sjames at gcc dot gnu.org> --- Reduced to.. SkBlitRow_opts_hsw.ii: ``` typedef char __v32qi __attribute__((__vector_size__(32))); typedef long __m256i __attribute__((__vector_size__(32))); __m256i _mm256_shuffle_epi8___X, _mm256_shuffle_epi8___Y, _mm256_sub_epi16___trans_tmp_4; void _mm256_sub_epi16() { _mm256_sub_epi16___trans_tmp_4 = (__m256i)__builtin_ia32_pshufb256( (__v32qi)_mm256_shuffle_epi8___X, (__v32qi)_mm256_shuffle_epi8___Y); } ``` SkSwizzler_opts_hsw.ii: ``` typedef char __v32qi __attribute__((__vector_size__(32))); typedef long __m256i __attribute__((__vector_size__(32))); #pragma GCC push_options #pragma GCC target "avxvnni" #pragma GCC pop_options __m256i _mm256_shuffle_epi8___X, _mm256_shuffle_epi8___Y; __m256i __attribute___mm256_shuffle_epi8() { return (__m256i)__builtin_ia32_pshufb256((__v32qi)_mm256_shuffle_epi8___X, (__v32qi)_mm256_shuffle_epi8___Y); } ``` ``` g++ -c SkBlitRow_opts_hsw.ii -O3 -mavx2 -mf16c -mfma -flto g++ -c SkSwizzler_opts_hsw.ii -O3 -flto g++ SkBlitRow_opts_hsw.o SkSwizzler_opts_hsw.o ```