#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*/ printf(char *);
void print_help() {
  printf("  --sse3                           test sse3 instruction.\n"
         "  --ssse3                          test ssse3 instruction.\n"
         "  --sse4                           test sse4 instruction.\n"
         "  --sse4a                          test sse4a instruction.\n"
         "  --avx                            test avx instruction.\n"
         "  --aes                            test aes instruction.\n"
         "  --pclmul                         test carry less multiplication.\n"
         "  --rdrand                         test rdrand instruction.\n"
         "  --fma4                           test fma4 instruction.\n"
         "  --xop                            test fma4 instruction.\n"
         "  --stress n_cpus,avx,aes          start stress on n_cpus.and "
         "cpuflags.\n"
         "  --stressmem mem_size[,max_mem]   start stressmem\n"
         "                                   mem_size/s amount of mem in MB "
         "filled by one second.\n"
         "                                   max_mem in MB which can be use "
         "for filling.\n");
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [882 x i8] c" --sse3 test sse3 instruction.\0A --ssse3 test ssse3 instruction.\0A --sse4 test sse4 instruction.\0A --sse4a test sse4a instruction.\0A --avx test avx instruction.\0A --aes test aes instruction.\0A --pclmul test carry less multiplication.\0A --rdrand test rdrand instruction.\0A --fma4 test fma4 instruction.\0A --xop test fma4 instruction.\0A --stress n_cpus,avx,aes start stress on n_cpus.and cpuflags.\0A --stressmem mem_size[,max_mem] start stressmem\0A mem_size/s amount of mem in MB filled by one second.\0A max_mem in MB which can be use for filling.\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([882 x i8], [882 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [881 x i8] c" --sse3 test sse3 instruction.\0A --ssse3 test ssse3 instruction.\0A --sse4 test sse4 instruction.\0A --sse4a test sse4a instruction.\0A --avx test avx instruction.\0A --aes test aes instruction.\0A --pclmul test carry less multiplication.\0A --rdrand test rdrand instruction.\0A --fma4 test fma4 instruction.\0A --xop test fma4 instruction.\0A --stress n_cpus,avx,aes start stress on n_cpus.and cpuflags.\0A --stressmem mem_size[,max_mem] start stressmem\0A mem_size/s amount of mem in MB filled by one second.\0A max_mem in MB which can be use for filling.\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([881 x i8], [881 x i8]* @str, i64 0, i64 0))
ret void
}