#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*/ nv_msg(char *, char *);
void print_assign_help(void) {
  nv_msg("      ", "The ASSIGN argument to the '--assign' commandline option "
                   "is of the form:");
  nv_msg(NULL, "");
  nv_msg("      "
         "  ",
         "{DISPLAY}/{attribute name}[{display devices}]"
         "={value}");
  nv_msg(NULL, "");
  nv_msg("      ",
         "This assigns the attribute {attribute name} to the value "
         "{value} on the X Display {DISPLAY}.  {DISPLAY} follows the usual "
         "{host}:{display}.{screen} syntax of the DISPLAY environment "
         "variable and is optional; when it is not specified, then it is "
         "implied following the same rule as the --ctrl-display option.  "
         "If the X screen is not specified, then the assignment is made to "
         "all X screens.  Note that the '/' is only required when {DISPLAY} "
         "is present.");
  nv_msg(NULL, "");
  nv_msg("      ",
         "{DISPLAY} can additionally include a target "
         "specification to direct an assignment to something other than "
         "an X screen.  A target specification is contained within brackets "
         "and consists of a target type name, a colon, and the "
         "target id.  The target type name can be one of \"screen\", "
         "\"gpu\", or \"framelock\"; the target id is the index into the "
         "list of targets (for that target type).  The target specification "
         "can be used in {DISPLAY} wherever an X screen can be used, "
         "following the syntax {host}:{display}[{target_type}:"
         "{target_id}].  See the output of `nvidia-settings -q all` for "
         "information on which target types can be used with which "
         "attributes.  See the output of `nvidia-settings -q screens "
         "-q gpus -q framelocks` for lists of targets for each "
         "target type.");
  nv_msg(NULL, "");
  nv_msg("      ",
         "The [{display devices}] portion is also optional; "
         "if it is not specified, then the attribute is assigned to all "
         "display devices.");
  nv_msg(NULL, "");
  nv_msg("      ", "Some examples:");
  nv_msg(NULL, "");
  nv_msg("      "
         "  ",
         "-a FSAA=5");
  nv_msg("      "
         "  ",
         "-a localhost:0.0/DigitalVibrance[CRT-0]=0");
  nv_msg("      "
         "  ",
         "--assign=\"SyncToVBlank=1\"");
  nv_msg("      "
         "  ",
         "-a [gpu:0]/DigitalVibrance[DFP-1]=63");
}


x86 assembly (clang, -O0):
<print_assign_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xf30(%rip),%rdi
lea    0xede(%rip),%rsi
call   1030 <nv_msg@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xf1f(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xf0b(%rip),%rdi
lea    0xf0d(%rip),%rsi
call   1030 <nv_msg@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xefc(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xeea(%rip),%rdi
lea    0xf20(%rip),%rsi
call   1030 <nv_msg@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xed9(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xec7(%rip),%rdi
lea    0x10c0(%rip),%rsi
call   1030 <nv_msg@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xeb6(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xea4(%rip),%rdi
lea    0x1397(%rip),%rsi
call   1030 <nv_msg@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xe93(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xe81(%rip),%rdi
lea    0x13f5(%rip),%rsi
call   1030 <nv_msg@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0xe70(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xe5c(%rip),%rdi
lea    0x13e1(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xe49(%rip),%rdi
lea    0x13d8(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xe36(%rip),%rdi
lea    0x13ef(%rip),%rsi
call   1030 <nv_msg@plt>
lea    0xe23(%rip),%rdi
lea    0x13f6(%rip),%rsi
call   1030 <nv_msg@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_assign_help>:
push   %r15
push   %r14
push   %rbx
lea    0xf2f(%rip),%r15
lea    0xedd(%rip),%rsi
mov    %r15,%rdi
call   1030 <nv_msg@plt>
lea    0xf1f(%rip),%rbx
xor    %edi,%edi
mov    %rbx,%rsi
call   1030 <nv_msg@plt>
lea    0xf06(%rip),%r14
lea    0xf08(%rip),%rsi
mov    %r14,%rdi
call   1030 <nv_msg@plt>
xor    %edi,%edi
mov    %rbx,%rsi
call   1030 <nv_msg@plt>
lea    0xf25(%rip),%rsi
mov    %r15,%rdi
call   1030 <nv_msg@plt>
xor    %edi,%edi
mov    %rbx,%rsi
call   1030 <nv_msg@plt>
lea    0x10cf(%rip),%rsi
mov    %r15,%rdi
call   1030 <nv_msg@plt>
xor    %edi,%edi
mov    %rbx,%rsi
call   1030 <nv_msg@plt>
lea    0x13b0(%rip),%rsi
mov    %r15,%rdi
call   1030 <nv_msg@plt>
xor    %edi,%edi
mov    %rbx,%rsi
call   1030 <nv_msg@plt>
lea    0x1418(%rip),%rsi
mov    %r15,%rdi
call   1030 <nv_msg@plt>
xor    %edi,%edi
mov    %rbx,%rsi
call   1030 <nv_msg@plt>
lea    0x140e(%rip),%rsi
mov    %r14,%rdi
call   1030 <nv_msg@plt>
lea    0x1409(%rip),%rsi
mov    %r14,%rdi
call   1030 <nv_msg@plt>
lea    0x1424(%rip),%rsi
mov    %r14,%rdi
call   1030 <nv_msg@plt>
lea    0x142f(%rip),%rsi
mov    %r14,%rdi
pop    %rbx
pop    %r14
pop    %r15
jmp    1030 <nv_msg@plt>

LLVM IR (-O0):
@.str = [7 x i8] c" \00"
@.str.1 = [73 x i8] c"The ASSIGN argument to the '--assign' commandline option is of the form:\00"
@.str.2 = [1 x i8] zeroinitializer
@.str.3 = [9 x i8] c" \00"
@.str.4 = [54 x i8] c"{DISPLAY}/{attribute name}[{display devices}]={value}\00"
@.str.5 = [451 x i8] c"This assigns the attribute {attribute name} to the value {value} on the X Display {DISPLAY}. {DISPLAY} follows the usual {host}:{display}.{screen} syntax of the DISPLAY environment variable and is optional; when it is not specified, then it is implied following the same rule as the --ctrl-display option. If the X screen is not specified, then the assignment is made to all X screens. Note that the '/' is only required when {DISPLAY} is present.\00"
@.str.6 = [762 x i8] c"{DISPLAY} can additionally include a target specification to direct an assignment to something other than an X screen. A target specification is contained within brackets and consists of a target type name, a colon, and the target id. The target type name can be one of \22screen\22, \22gpu\22, or \22framelock\22; the target id is the index into the list of targets (for that target type). The target specification can be used in {DISPLAY} wherever an X screen can be used, following the syntax {host}:{display}[{target_type}:{target_id}]. See the output of `nvidia-settings -q all` for information on which target types can be used with which attributes. See the output of `nvidia-settings -q screens -q gpus -q framelocks` for lists of targets for each target type.\00"
@.str.7 = [129 x i8] c"The [{display devices}] portion is also optional; if it is not specified, then the attribute is assigned to all display devices.\00"
@.str.8 = [15 x i8] c"Some examples:\00"
@.str.9 = [10 x i8] c"-a FSAA=5\00"
@.str.10 = [42 x i8] c"-a localhost:0.0/DigitalVibrance[CRT-0]=0\00"
@.str.11 = [26 x i8] c"--assign=\22SyncToVBlank=1\22\00"
@.str.12 = [37 x i8] c"-a [gpu:0]/DigitalVibrance[DFP-1]=63\00"
define void @print_assign_help() {
%1 = call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.1, i64 0, i64 0))
%2 = call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%3 = call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.4, i64 0, i64 0))
%4 = call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%5 = call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([451 x i8], [451 x i8]* @.str.5, i64 0, i64 0))
%6 = call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%7 = call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([762 x i8], [762 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%9 = call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([129 x i8], [129 x i8]* @.str.7, i64 0, i64 0))
%10 = call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%11 = call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0))
%12 = call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%13 = call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
%14 = call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.10, i64 0, i64 0))
%15 = call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.11, i64 0, i64 0))
%16 = call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [7 x i8] c" \00"
@.str.1 = [73 x i8] c"The ASSIGN argument to the '--assign' commandline option is of the form:\00"
@.str.2 = [1 x i8] zeroinitializer
@.str.3 = [9 x i8] c" \00"
@.str.4 = [54 x i8] c"{DISPLAY}/{attribute name}[{display devices}]={value}\00"
@.str.5 = [451 x i8] c"This assigns the attribute {attribute name} to the value {value} on the X Display {DISPLAY}. {DISPLAY} follows the usual {host}:{display}.{screen} syntax of the DISPLAY environment variable and is optional; when it is not specified, then it is implied following the same rule as the --ctrl-display option. If the X screen is not specified, then the assignment is made to all X screens. Note that the '/' is only required when {DISPLAY} is present.\00"
@.str.6 = [762 x i8] c"{DISPLAY} can additionally include a target specification to direct an assignment to something other than an X screen. A target specification is contained within brackets and consists of a target type name, a colon, and the target id. The target type name can be one of \22screen\22, \22gpu\22, or \22framelock\22; the target id is the index into the list of targets (for that target type). The target specification can be used in {DISPLAY} wherever an X screen can be used, following the syntax {host}:{display}[{target_type}:{target_id}]. See the output of `nvidia-settings -q all` for information on which target types can be used with which attributes. See the output of `nvidia-settings -q screens -q gpus -q framelocks` for lists of targets for each target type.\00"
@.str.7 = [129 x i8] c"The [{display devices}] portion is also optional; if it is not specified, then the attribute is assigned to all display devices.\00"
@.str.8 = [15 x i8] c"Some examples:\00"
@.str.9 = [10 x i8] c"-a FSAA=5\00"
@.str.10 = [42 x i8] c"-a localhost:0.0/DigitalVibrance[CRT-0]=0\00"
@.str.11 = [26 x i8] c"--assign=\22SyncToVBlank=1\22\00"
@.str.12 = [37 x i8] c"-a [gpu:0]/DigitalVibrance[DFP-1]=63\00"
define void @print_assign_help() {
%1 = tail call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.1, i64 0, i64 0))
%2 = tail call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%3 = tail call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.4, i64 0, i64 0))
%4 = tail call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%5 = tail call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([451 x i8], [451 x i8]* @.str.5, i64 0, i64 0))
%6 = tail call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%7 = tail call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([762 x i8], [762 x i8]* @.str.6, i64 0, i64 0))
%8 = tail call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%9 = tail call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([129 x i8], [129 x i8]* @.str.7, i64 0, i64 0))
%10 = tail call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%11 = tail call i32 @nv_msg(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0))
%12 = tail call i32 @nv_msg(i8* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0))
%13 = tail call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
%14 = tail call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.10, i64 0, i64 0))
%15 = tail call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.11, i64 0, i64 0))
%16 = tail call i32 @nv_msg(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0))
ret void
}