Hello, As far as I can tell, intrinsics _addcarry_u64() and _addcarryx_u64() are plain wrappers around the same __builtin_ia32_addcarryx_u64() function. https://github.com/gcc-mirror/gcc/blob/master/gcc/config/i386/adxintrin.h Thus, I wonder: what is the use-case for the wrappers? Why would a programmer not call the builtin directly? Is it for compatibility with Intel compilers? Also, based on the names, I would have assumed that _addcarry_u64 generates adc while _addcarryx_u64 generates adcx/adox ? Relevant past discussion: https://gcc.gnu.org/legacy-ml/gcc-help/2017-08/msg00100.html Regards