#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage() {
  fprintf(stderr,
          "Usage: "
          "sg_write_long [--16] [--cor_dis] [--help] [--in=IF] "
          "[--lba=LBA]\n"
          "                     [--pblock] [--verbose] [--version] "
          "[--wr_uncor]\n"
          "                     [--xfer_len=BTL] DEVICE\n"
          "  where:\n"
          "    --16|-S              do WRITE LONG(16) (default: 10)\n"
          "    --cor_dis|-c         set correction disabled bit\n"
          "    --help|-h            print out usage message\n"
          "    --in=IF|-i IF        input from file called IF (default: "
          "use\n"
          "                         0xff bytes as fill)\n"
          "    --lba=LBA|-l LBA     logical block address "
          "(default: 0)\n"
          "    --pblock|-p          physical block (default: logical "
          "block)\n"
          "    --verbose|-v         increase verbosity\n"
          "    --version|-V         print version string then exit\n"
          "    --wr_uncor|-w        set an uncorrectable error (no "
          "data transferred)\n"
          "    --xfer_len=BTL|-x BTL    byte transfer length (< 10000) "
          "(default:\n"
          "                             520 bytes)\n\n"
          "Performs a SCSI WRITE LONG (10 or 16) command\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [920 x i8] c"Usage: sg_write_long [--16] [--cor_dis] [--help] [--in=IF] [--lba=LBA]\0A [--pblock] [--verbose] [--version] [--wr_uncor]\0A [--xfer_len=BTL] DEVICE\0A where:\0A --16|-S do WRITE LONG(16) (default: 10)\0A --cor_dis|-c set correction disabled bit\0A --help|-h print out usage message\0A --in=IF|-i IF input from file called IF (default: use\0A 0xff bytes as fill)\0A --lba=LBA|-l LBA logical block address (default: 0)\0A --pblock|-p physical block (default: logical block)\0A --verbose|-v increase verbosity\0A --version|-V print version string then exit\0A --wr_uncor|-w set an uncorrectable error (no data transferred)\0A --xfer_len=BTL|-x BTL byte transfer length (< 10000) (default:\0A 520 bytes)\0A\0APerforms a SCSI WRITE LONG (10 or 16) command\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([920 x i8], [920 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [920 x i8] c"Usage: sg_write_long [--16] [--cor_dis] [--help] [--in=IF] [--lba=LBA]\0A [--pblock] [--verbose] [--version] [--wr_uncor]\0A [--xfer_len=BTL] DEVICE\0A where:\0A --16|-S do WRITE LONG(16) (default: 10)\0A --cor_dis|-c set correction disabled bit\0A --help|-h print out usage message\0A --in=IF|-i IF input from file called IF (default: use\0A 0xff bytes as fill)\0A --lba=LBA|-l LBA logical block address (default: 0)\0A --pblock|-p physical block (default: logical block)\0A --verbose|-v increase verbosity\0A --version|-V print version string then exit\0A --wr_uncor|-w set an uncorrectable error (no data transferred)\0A --xfer_len=BTL|-x BTL byte transfer length (< 10000) (default:\0A 520 bytes)\0A\0APerforms a SCSI WRITE LONG (10 or 16) command\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([920 x i8], [920 x i8]* @.str, i64 0, i64 0))
ret void
}