Do budoucna bych doporučil místo gcc -S -O0 -masm=intel použít godbolt.org. Jednak je to hezky barevné :) a jednak si s tím pak čtenáři můžou hrát sami.
Např. icc vyrobí toto:
add_overflow_signed_char:
..B1.1: # Preds ..B1.0
xor eax, eax #5.21
movsx rdx, dil #3.61
movsx rcx, sil #3.61
add edx, ecx #5.21
movsx r8, dl #5.21
cmp edx, r8d #6.12
setne al #6.12
ret #6.12
add_overflow_unsigned_char:
..B2.1: # Preds ..B2.0
movzx edi, dil #9.67
movzx esi, sil #9.67
add edi, esi #11.21
..B2.2: # Preds ..B2.1
movzx eax, dil #11.21
cmp edi, eax #11.21
je ..B2.4 # Prob 50% #11.21
..B2.3: # Preds ..B2.2
mov eax, 1 #11.21
ret #11.21
..B2.4: # Preds ..B2.2
xor eax, eax #11.21
..B2.5: # Preds ..B2.4
ret #12.12
add_overflow_signed_short:
..B3.1: # Preds ..B3.0
xor eax, eax #17.21
movsx rdx, di #15.64
movsx rcx, si #15.64
add edx, ecx #17.21
movsx r8, dx #17.21
cmp edx, r8d #18.12
setne al #18.12
ret #18.12
add_overflow_unsigned_short:
..B4.1: # Preds ..B4.0
movzx edx, di #21.70
movzx eax, si #21.70
add edx, eax #23.21
..B4.2: # Preds ..B4.1
movzx eax, dx #23.21
cmp edx, eax #23.21
je ..B4.4 # Prob 50% #23.21
..B4.3: # Preds ..B4.2
mov eax, 1 #23.21
ret #23.21
..B4.4: # Preds ..B4.2
xor eax, eax #23.21
..B4.5: # Preds ..B4.4
ret #24.12
add_overflow_signed_int:
..B5.1: # Preds ..B5.0
xor eax, eax #29.21
add edi, esi #29.21
seto al #29.21
ret #30.12
add_overflow_unsigned_int:
..B6.1: # Preds ..B6.0
xor eax, eax #35.21
add edi, esi #35.21
setb al #35.21
ret #36.12
add_overflow_signed_long:
..B7.1: # Preds ..B7.0
xor eax, eax #41.21
add rdi, rsi #41.21
seto al #41.21
ret #42.12
add_overflow_unsigned_long:
..B8.1: # Preds ..B8.0
xor eax, eax #47.21
add rdi, rsi #47.21
setb al #47.21
ret #48.12