user: Demonstrate the C code that generates the assembly output below:

```asm
<test_add>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   <add_i8@plt>
  cmp    $0x2,%eax
  je     L28
  mov    $0x7c,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L28:
  mov    $0xffffffff,%esi
  mov    $0x1,%edi
  call   <add_i8@plt>
  test   %eax,%eax
  je     L199
  mov    $0x7e,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L199:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <add_i8@plt>
  cmp    $0xfffffffe,%eax
  je     L238
  mov    $0x80,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L238:
  mov    $0x1,%esi
  mov    $0xff,%edi
  call   <add_i8@plt>
  test   %eax,%eax
  je     L113
  mov    $0x82,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L113:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   <add_i16@plt>
  cmp    $0x2,%eax
  je     L152
  mov    $0x85,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L152:
  mov    $0xffffffff,%esi
  mov    $0x1,%edi
  call   <add_i16@plt>
  test   %eax,%eax
  je     L87
  mov    $0x87,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L87:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <add_i16@plt>
  cmp    $0xfffffffe,%eax
  je     L109
  mov    $0x89,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L109:
  mov    $0x1,%esi
  mov    $0xffff,%edi
  call   <add_i16@plt>
  test   %eax,%eax
  je     L225
  mov    $0x8b,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L225:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   <add_i32@plt>
  cmp    $0x2,%eax
  je     L289
  mov    $0x8e,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L289:
  mov    $0xffffffff,%esi
  mov    $0x1,%edi
  call   <add_i32@plt>
  test   %eax,%eax
  je     L130
  mov    $0x90,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L130:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <add_i32@plt>
  cmp    $0xfffffffe,%eax
  je     L149
  mov    $0x92,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L149:
  mov    $0x1,%esi
  mov    $0xffffffff,%edi
  call   <add_i32@plt>
  test   %eax,%eax
  je     L206
  mov    $0x94,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L206:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   <add_i64@plt>
  cmp    $0x2,%eax
  je     L303
  mov    $0x97,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L303:
  mov    $0xffffffff,%esi
  mov    $0x1,%edi
  call   <add_i64@plt>
  test   %eax,%eax
  je     L85
  mov    $0x99,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L85:
  mov    $0xffffffff,%esi
  mov    $0xffffffffffffffff,%rdi
  call   <add_i64@plt>
  cmp    $0xfffffffe,%eax
  je     L318
  mov    $0x9b,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L318:
  mov    $0x1,%esi
  mov    $0xffffffffffffffff,%rdi
  call   <add_i64@plt>
  test   %eax,%eax
  je     L110
  mov    $0x9d,%esi
  mov    $0x0,%edi
  call   <fail_real@plt>
  jmp    L20
L110:
  mov    $0x1,%eax
L20:
  pop    %rbp
  ret
```

assistant: ```c
int test_add(void) {
  if (add_i8(1, 1) != 2)
    return fail_real(0, 124);
  if (add_i8(1, -1) != 0)
    return fail_real(0, 126);
  if (add_i8(-1, -1) != -2)
    return fail_real(0, 128);
  if (add_i8(255, 1) != 0)
    return fail_real(0, 130);
  if (add_i16(1, 1) != 2)
    return fail_real(0, 133);
  if (add_i16(1, -1) != 0)
    return fail_real(0, 135);
  if (add_i16(-1, -1) != -2)
    return fail_real(0, 137);
  if (add_i16(65535, 1) != 0)
    return fail_real(0, 139);
  if (add_i32(1, 1) != 2)
    return fail_real(0, 142);
  if (add_i32(1, -1) != 0)
    return fail_real(0, 144);
  if (add_i32(-1, -1) != -2)
    return fail_real(0, 146);
  if (add_i32(~0u, 1) != 0)
    return fail_real(0, 148);
  if (add_i64(1, 1) != 2)
    return fail_real(0, 151);
  if (add_i64(1, -1) != 0)
    return fail_real(0, 153);
  if (add_i64(-1, -1) != -2)
    return fail_real(0, 155);
  if (add_i64(~0ull, 1) != 0)
    return fail_real(0, 157);
  return 0x1;
}
```