https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118068
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I am not 100% sure if this is a bug. The IR looks like: (void) (a = __builtin_ia32_blendps256 (_mm256_set1_ps (3.0e+0), _mm256_set1_ps (4.0e+0), (int) 128)) >>>>>; Notice the cast there. Once we change swap return type is int, it works.