https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110304
--- Comment #14 from cqwrteur <unlvsur at live dot com> --- https://godbolt.org/z/4ej4dnr4b I find a bug here: f0 = __builtin_subcl(f0,v,0,&carry); f1 = __builtin_subcl(f1,zero,carry,&carry); The compiler generates: setb %cl//redundant movzbl %cl, %ecx//redundant subq %rcx, %rdx//redundant They should be just one instruction which is sbbq $0, %rcx I minus a constant, why would it give me so many redundant instructions??