#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 *, char const *, int,
                           char const *);
int /*<<< orphan*/ stderr;
void print_help(const char *self) {
  fprintf(
      stderr,
      "  Userspace I2C utility for: Texas Instruments TMP007 Remote "
      "Temperature Sensor\n  (C) Chi Zhang (dword1511) "
      "<zhangchi866@gmail.com>\n  \n  Usage:\n    %s -b <bus number> [list of "
      "operations]\n  \n  Operations will be carried out in argument list "
      "order.\n  Bus number and address can be overrided in the middle of the "
      "list.\n  \n  List of operations:\n    -a <int>: override device address "
      "(default: 0x%02x, in range 0x03 to 0x7f).\n              NOTE: this "
      "value will NOT be reset to default after switching\n                    "
      "bus.\n              WARN: use this option only when you know what you "
      "are doing!\n    -A      : print all information provided by the "
      "sensor.\n    -b <int>: set bus number (must be set prior to any "
      "operations).\n              NOTE: you can use `i2cdetect -l' to list "
      "I2C buses present in the\n                    system.\n    -l      : "
      "print local (die) temperature.\n    -o      : print remote (object) "
      "temperature.\n  \n  Example:\n    Print object temperature measured by "
      "TMP007 on i2c-1:\n      %s -b 1 -o\n  \n",
      self, (0x40), self);
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ebd(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
mov    -0x8(%rbp),%r8
lea    0xecc(%rip),%rsi
mov    $0x40,%ecx
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
mov    %rdi,%rdx
mov    0x2ec6(%rip),%rax
mov    (%rax),%edi
lea    0xedd(%rip),%rsi
mov    $0x40,%ecx
mov    %rdx,%r8
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1021 x i8] c" Userspace I2C utility for: Texas Instruments TMP007 Remote Temperature Sensor\0A (C) Chi Zhang (dword1511) <zhangchi866@gmail.com>\0A \0A Usage:\0A %s -b <bus number> [list of operations]\0A \0A Operations will be carried out in argument list order.\0A Bus number and address can be overrided in the middle of the list.\0A \0A List of operations:\0A -a <int>: override device address (default: 0x%02x, in range 0x03 to 0x7f).\0A NOTE: this value will NOT be reset to default after switching\0A bus.\0A WARN: use this option only when you know what you are doing!\0A -A : print all information provided by the sensor.\0A -b <int>: set bus number (must be set prior to any operations).\0A NOTE: you can use `i2cdetect -l' to list I2C buses present in the\0A system.\0A -l : print local (die) temperature.\0A -o : print remote (object) temperature.\0A \0A Example:\0A Print object temperature measured by TMP007 on i2c-1:\0A %s -b 1 -o\0A \0A\00"
define void @print_help(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = load i8*, i8** %2
%5 = load i8*, i8** %2
%6 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([1021 x i8], [1021 x i8]* @.str, i64 0, i64 0), i8* %4, i32 64, i8* %5)
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1021 x i8] c" Userspace I2C utility for: Texas Instruments TMP007 Remote Temperature Sensor\0A (C) Chi Zhang (dword1511) <zhangchi866@gmail.com>\0A \0A Usage:\0A %s -b <bus number> [list of operations]\0A \0A Operations will be carried out in argument list order.\0A Bus number and address can be overrided in the middle of the list.\0A \0A List of operations:\0A -a <int>: override device address (default: 0x%02x, in range 0x03 to 0x7f).\0A NOTE: this value will NOT be reset to default after switching\0A bus.\0A WARN: use this option only when you know what you are doing!\0A -A : print all information provided by the sensor.\0A -b <int>: set bus number (must be set prior to any operations).\0A NOTE: you can use `i2cdetect -l' to list I2C buses present in the\0A system.\0A -l : print local (die) temperature.\0A -o : print remote (object) temperature.\0A \0A Example:\0A Print object temperature measured by TMP007 on i2c-1:\0A %s -b 1 -o\0A \0A\00"
define void @print_help(i8* %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([1021 x i8], [1021 x i8]* @.str, i64 0, i64 0), i8* %0, i32 64, i8* %0)
ret void
}