https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- double MyMinV2(double a, double b) { double undef = undef; __m128d x; __m128d y; asm ("" : "=x" (x) : "0" (a)); asm ("" : "=x" (y) : "0" (b)); return _mm_cvtsd_f64(_mm_min_sd(x, y)); } works though.