https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111907
--- Comment #5 from Haochen Jiang <haochen.jiang at intel dot com> --- BTW, it should be disabled since it will use zmm previously. foo(_Float128, _Float128): push rbp mov rbp, rsp vmovdqa XMMWORD PTR [rbp-16], xmm0 vmovdqa XMMWORD PTR [rbp-32], xmm1 vmovdqa xmm1, XMMWORD PTR [rbp-16] vmovdqa xmm2, XMMWORD PTR [rbp-32] vmovdqa xmm0, XMMWORD PTR .LC0[rip] vpandnq zmm1, zmm0, zmm1 vpand xmm0, xmm0, xmm2 vpor xmm0, xmm1, xmm0 pop rbp ret A straightforward solution might be trying to use its xmm version here.