#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 DBL_DIG;
double DBL_EPSILON;
int DBL_MANT_DIG;
double DBL_MAX;
int DBL_MAX_10_EXP;
int DBL_MAX_EXP;
double DBL_MIN;
int DBL_MIN_10_EXP;
int DBL_MIN_EXP;
int FLT_DIG;
double FLT_EPSILON;
int FLT_MANT_DIG;
double FLT_MAX;
int FLT_MAX_10_EXP;
int FLT_MAX_EXP;
double FLT_MIN;
int FLT_MIN_10_EXP;
int FLT_MIN_EXP;
int FLT_RADIX;
int LDBL_MANT_DIG;
int /*<<< orphan*/ printf(char *, double);
int /*<<< orphan*/ putchar(char);
int /*<<< orphan*/ puts(char *);
void show_float_h(void) {
  puts("[<float.h>]");
  puts("    kind = header");
  puts("    FLT_ROUNDS = undefined");
  puts("    FLT_EVAL_METHOD = undefined");
  puts("    FLT_HAS_SUBNORM = undefined");
  puts("    DBL_HAS_SUBNORM = undefined");
  puts("    LDBL_HAS_SUBNORM = undefined");
  printf("    FLT_RADIX = %d\n", FLT_RADIX);
  printf("    FLT_MANT_DIG = %d\n", FLT_MANT_DIG);
  printf("    DBL_MANT_DIG = %d\n", DBL_MANT_DIG);
  printf("    LDBL_MANT_DIG = %d\n", LDBL_MANT_DIG);
  puts("    FLT_DECIMAL_DIG = undefined");
  puts("    DBL_DECIMAL_DIG = undefined");
  puts("    LDBL_DECIMAL_DIG = undefined");
  puts("    DECIMAL_DIG = undefined");
  printf("    FLT_DIG = %d\n", FLT_DIG);
  printf("    DBL_DIG = %d\n", DBL_DIG);
  printf("    FLT_MIN_EXP = %d\n", FLT_MIN_EXP);
  printf("    DBL_MIN_EXP = %d\n", DBL_MIN_EXP);
  printf("    FLT_MIN_10_EXP = %d\n", FLT_MIN_10_EXP);
  printf("    DBL_MIN_10_EXP = %d\n", DBL_MIN_10_EXP);
  printf("    FLT_MAX_EXP = %d\n", FLT_MAX_EXP);
  printf("    DBL_MAX_EXP = %d\n", DBL_MAX_EXP);
  printf("    FLT_MAX_10_EXP = %d\n", FLT_MAX_10_EXP);
  printf("    DBL_MAX_10_EXP = %d\n", DBL_MAX_10_EXP);
  printf("    FLT_MAX = %e\n", FLT_MAX);
  printf("    DBL_MAX = %e\n", DBL_MAX);
  printf("    FLT_EPSILON = %e\n", FLT_EPSILON);
  printf("    DBL_EPSILON = %e\n", DBL_EPSILON);
  printf("    FLT_MIN = %e\n", FLT_MIN);
  printf("    DBL_MIN = %e\n", DBL_MIN);
  puts("    FLT_TRUE_MIN = undefined");
  puts("    DBL_TRUE_MIN = undefined");
  puts("    LDBL_TRUE_MIN = undefined");
  putchar('\n');
}


x86 assembly (clang, -O0):
<show_float_h>:
push   %rbp
mov    %rsp,%rbp
lea    0xec5(%rip),%rdi
call   1040 <puts@plt>
lea    0xec5(%rip),%rdi
call   1040 <puts@plt>
lea    0xecb(%rip),%rdi
call   1040 <puts@plt>
lea    0xeda(%rip),%rdi
call   1040 <puts@plt>
lea    0xeee(%rip),%rdi
call   1040 <puts@plt>
lea    0xf02(%rip),%rdi
call   1040 <puts@plt>
lea    0xf16(%rip),%rdi
call   1040 <puts@plt>
mov    0x2e41(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf20(%rip),%rdi
call   1050 <printf@plt>
mov    0x2dc2(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf1d(%rip),%rdi
call   1050 <printf@plt>
mov    0x2dfb(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf1d(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d84(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf1d(%rip),%rdi
call   1050 <printf@plt>
lea    0xf29(%rip),%rdi
call   1040 <puts@plt>
lea    0xf3d(%rip),%rdi
call   1040 <puts@plt>
lea    0xf51(%rip),%rdi
call   1040 <puts@plt>
lea    0xf66(%rip),%rdi
call   1040 <puts@plt>
mov    0x2ddd(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf6b(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d66(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf66(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d47(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf61(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d68(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf60(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d11(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf5f(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d5a(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf61(%rip),%rdi
call   1050 <printf@plt>
mov    0x2cfb(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf63(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d04(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf62(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c8d(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf61(%rip),%rdi
call   1050 <printf@plt>
mov    0x2cf6(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf63(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c7f(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf65(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c38(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf60(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c41(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf5b(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c6a(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf5a(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c4b(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf59(%rip),%rdi
call   1050 <printf@plt>
mov    0x2bd4(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf54(%rip),%rdi
call   1050 <printf@plt>
lea    0xf5a(%rip),%rdi
call   1040 <puts@plt>
lea    0xf6b(%rip),%rdi
call   1040 <puts@plt>
lea    0xf7c(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<show_float_h>:
push   %rax
lea    0xec8(%rip),%rdi
call   1040 <puts@plt>
lea    0xec8(%rip),%rdi
call   1040 <puts@plt>
lea    0xece(%rip),%rdi
call   1040 <puts@plt>
lea    0xedd(%rip),%rdi
call   1040 <puts@plt>
lea    0xef1(%rip),%rdi
call   1040 <puts@plt>
lea    0xf05(%rip),%rdi
call   1040 <puts@plt>
lea    0xf19(%rip),%rdi
call   1040 <puts@plt>
mov    0x2e44(%rip),%rax
cvtsi2sdl (%rax),%xmm0
lea    0xf23(%rip),%rdi
call   1050 <printf@plt>
mov    0x2dc5(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf1d(%rip),%rdi
call   1050 <printf@plt>
mov    0x2dfb(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf1a(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d81(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf17(%rip),%rdi
call   1050 <printf@plt>
lea    0xf23(%rip),%rdi
call   1040 <puts@plt>
lea    0xf37(%rip),%rdi
call   1040 <puts@plt>
lea    0xf4b(%rip),%rdi
call   1040 <puts@plt>
lea    0xf60(%rip),%rdi
call   1040 <puts@plt>
mov    0x2dd7(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf62(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d5d(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf5a(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d3b(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf52(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d59(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf4e(%rip),%rdi
call   1050 <printf@plt>
mov    0x2cff(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf4a(%rip),%rdi
call   1050 <printf@plt>
mov    0x2d45(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf49(%rip),%rdi
call   1050 <printf@plt>
mov    0x2ce3(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf48(%rip),%rdi
call   1050 <printf@plt>
mov    0x2ce9(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf44(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c6f(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf40(%rip),%rdi
call   1050 <printf@plt>
mov    0x2cd5(%rip),%rax
xorps  %xmm0,%xmm0
cvtsi2sdl (%rax),%xmm0
lea    0xf3f(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c5b(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf41(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c14(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf3c(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c1d(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf37(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c46(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf36(%rip),%rdi
call   1050 <printf@plt>
mov    0x2c27(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf35(%rip),%rdi
call   1050 <printf@plt>
mov    0x2bb0(%rip),%rax
movsd  (%rax),%xmm0
lea    0xf30(%rip),%rdi
call   1050 <printf@plt>
lea    0xf36(%rip),%rdi
call   1040 <puts@plt>
lea    0xf47(%rip),%rdi
call   1040 <puts@plt>
lea    0xf58(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
pop    %rax
jmp    1030 <putchar@plt>

LLVM IR (-O0):
@.str = [12 x i8] c"[<float.h>]\00"
@.str.1 = [18 x i8] c" kind = header\00"
@.str.2 = [27 x i8] c" FLT_ROUNDS = undefined\00"
@.str.3 = [32 x i8] c" FLT_EVAL_METHOD = undefined\00"
@.str.4 = [32 x i8] c" FLT_HAS_SUBNORM = undefined\00"
@.str.5 = [32 x i8] c" DBL_HAS_SUBNORM = undefined\00"
@.str.6 = [33 x i8] c" LDBL_HAS_SUBNORM = undefined\00"
@.str.7 = [20 x i8] c" FLT_RADIX = %d\0A\00"
@FLT_RADIX = global i32 0
@.str.8 = [23 x i8] c" FLT_MANT_DIG = %d\0A\00"
@FLT_MANT_DIG = global i32 0
@.str.9 = [23 x i8] c" DBL_MANT_DIG = %d\0A\00"
@DBL_MANT_DIG = global i32 0
@.str.10 = [24 x i8] c" LDBL_MANT_DIG = %d\0A\00"
@LDBL_MANT_DIG = global i32 0
@.str.11 = [32 x i8] c" FLT_DECIMAL_DIG = undefined\00"
@.str.12 = [32 x i8] c" DBL_DECIMAL_DIG = undefined\00"
@.str.13 = [33 x i8] c" LDBL_DECIMAL_DIG = undefined\00"
@.str.14 = [28 x i8] c" DECIMAL_DIG = undefined\00"
@.str.15 = [18 x i8] c" FLT_DIG = %d\0A\00"
@FLT_DIG = global i32 0
@.str.16 = [18 x i8] c" DBL_DIG = %d\0A\00"
@DBL_DIG = global i32 0
@.str.17 = [22 x i8] c" FLT_MIN_EXP = %d\0A\00"
@FLT_MIN_EXP = global i32 0
@.str.18 = [22 x i8] c" DBL_MIN_EXP = %d\0A\00"
@DBL_MIN_EXP = global i32 0
@.str.19 = [25 x i8] c" FLT_MIN_10_EXP = %d\0A\00"
@FLT_MIN_10_EXP = global i32 0
@.str.20 = [25 x i8] c" DBL_MIN_10_EXP = %d\0A\00"
@DBL_MIN_10_EXP = global i32 0
@.str.21 = [22 x i8] c" FLT_MAX_EXP = %d\0A\00"
@FLT_MAX_EXP = global i32 0
@.str.22 = [22 x i8] c" DBL_MAX_EXP = %d\0A\00"
@DBL_MAX_EXP = global i32 0
@.str.23 = [25 x i8] c" FLT_MAX_10_EXP = %d\0A\00"
@FLT_MAX_10_EXP = global i32 0
@.str.24 = [25 x i8] c" DBL_MAX_10_EXP = %d\0A\00"
@DBL_MAX_10_EXP = global i32 0
@.str.25 = [18 x i8] c" FLT_MAX = %e\0A\00"
@FLT_MAX = global double 0.000000e+00
@.str.26 = [18 x i8] c" DBL_MAX = %e\0A\00"
@DBL_MAX = global double 0.000000e+00
@.str.27 = [22 x i8] c" FLT_EPSILON = %e\0A\00"
@FLT_EPSILON = global double 0.000000e+00
@.str.28 = [22 x i8] c" DBL_EPSILON = %e\0A\00"
@DBL_EPSILON = global double 0.000000e+00
@.str.29 = [18 x i8] c" FLT_MIN = %e\0A\00"
@FLT_MIN = global double 0.000000e+00
@.str.30 = [18 x i8] c" DBL_MIN = %e\0A\00"
@DBL_MIN = global double 0.000000e+00
@.str.31 = [29 x i8] c" FLT_TRUE_MIN = undefined\00"
@.str.32 = [29 x i8] c" DBL_TRUE_MIN = undefined\00"
@.str.33 = [30 x i8] c" LDBL_TRUE_MIN = undefined\00"
define void @show_float_h() {
%1 = call i32 @puts(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @puts(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @puts(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @puts(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @puts(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @puts(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @puts(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.6, i64 0, i64 0))
%8 = load i32, i32* @FLT_RADIX
%9 = sitofp i32 %8 to double
%10 = call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.7, i64 0, i64 0), double %9)
%11 = load i32, i32* @FLT_MANT_DIG
%12 = sitofp i32 %11 to double
%13 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.8, i64 0, i64 0), double %12)
%14 = load i32, i32* @DBL_MANT_DIG
%15 = sitofp i32 %14 to double
%16 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.9, i64 0, i64 0), double %15)
%17 = load i32, i32* @LDBL_MANT_DIG
%18 = sitofp i32 %17 to double
%19 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.10, i64 0, i64 0), double %18)
%20 = call i32 @puts(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.11, i64 0, i64 0))
%21 = call i32 @puts(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.12, i64 0, i64 0))
%22 = call i32 @puts(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.13, i64 0, i64 0))
%23 = call i32 @puts(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.14, i64 0, i64 0))
%24 = load i32, i32* @FLT_DIG
%25 = sitofp i32 %24 to double
%26 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), double %25)
%27 = load i32, i32* @DBL_DIG
%28 = sitofp i32 %27 to double
%29 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.16, i64 0, i64 0), double %28)
%30 = load i32, i32* @FLT_MIN_EXP
%31 = sitofp i32 %30 to double
%32 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.17, i64 0, i64 0), double %31)
%33 = load i32, i32* @DBL_MIN_EXP
%34 = sitofp i32 %33 to double
%35 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.18, i64 0, i64 0), double %34)
%36 = load i32, i32* @FLT_MIN_10_EXP
%37 = sitofp i32 %36 to double
%38 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.19, i64 0, i64 0), double %37)
%39 = load i32, i32* @DBL_MIN_10_EXP
%40 = sitofp i32 %39 to double
%41 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.20, i64 0, i64 0), double %40)
%42 = load i32, i32* @FLT_MAX_EXP
%43 = sitofp i32 %42 to double
%44 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.21, i64 0, i64 0), double %43)
%45 = load i32, i32* @DBL_MAX_EXP
%46 = sitofp i32 %45 to double
%47 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.22, i64 0, i64 0), double %46)
%48 = load i32, i32* @FLT_MAX_10_EXP
%49 = sitofp i32 %48 to double
%50 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.23, i64 0, i64 0), double %49)
%51 = load i32, i32* @DBL_MAX_10_EXP
%52 = sitofp i32 %51 to double
%53 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0), double %52)
%54 = load double, double* @FLT_MAX
%55 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.25, i64 0, i64 0), double %54)
%56 = load double, double* @DBL_MAX
%57 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.26, i64 0, i64 0), double %56)
%58 = load double, double* @FLT_EPSILON
%59 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), double %58)
%60 = load double, double* @DBL_EPSILON
%61 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.28, i64 0, i64 0), double %60)
%62 = load double, double* @FLT_MIN
%63 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.29, i64 0, i64 0), double %62)
%64 = load double, double* @DBL_MIN
%65 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.30, i64 0, i64 0), double %64)
%66 = call i32 @puts(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.31, i64 0, i64 0))
%67 = call i32 @puts(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.32, i64 0, i64 0))
%68 = call i32 @puts(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.33, i64 0, i64 0))
%69 = call i32 @putchar(i8 signext 10)
ret void
}

LLVM IR (-O2):
@.str = [12 x i8] c"[<float.h>]\00"
@.str.1 = [18 x i8] c" kind = header\00"
@.str.2 = [27 x i8] c" FLT_ROUNDS = undefined\00"
@.str.3 = [32 x i8] c" FLT_EVAL_METHOD = undefined\00"
@.str.4 = [32 x i8] c" FLT_HAS_SUBNORM = undefined\00"
@.str.5 = [32 x i8] c" DBL_HAS_SUBNORM = undefined\00"
@.str.6 = [33 x i8] c" LDBL_HAS_SUBNORM = undefined\00"
@.str.7 = [20 x i8] c" FLT_RADIX = %d\0A\00"
@FLT_RADIX = global i32 0
@.str.8 = [23 x i8] c" FLT_MANT_DIG = %d\0A\00"
@FLT_MANT_DIG = global i32 0
@.str.9 = [23 x i8] c" DBL_MANT_DIG = %d\0A\00"
@DBL_MANT_DIG = global i32 0
@.str.10 = [24 x i8] c" LDBL_MANT_DIG = %d\0A\00"
@LDBL_MANT_DIG = global i32 0
@.str.11 = [32 x i8] c" FLT_DECIMAL_DIG = undefined\00"
@.str.12 = [32 x i8] c" DBL_DECIMAL_DIG = undefined\00"
@.str.13 = [33 x i8] c" LDBL_DECIMAL_DIG = undefined\00"
@.str.14 = [28 x i8] c" DECIMAL_DIG = undefined\00"
@.str.15 = [18 x i8] c" FLT_DIG = %d\0A\00"
@FLT_DIG = global i32 0
@.str.16 = [18 x i8] c" DBL_DIG = %d\0A\00"
@DBL_DIG = global i32 0
@.str.17 = [22 x i8] c" FLT_MIN_EXP = %d\0A\00"
@FLT_MIN_EXP = global i32 0
@.str.18 = [22 x i8] c" DBL_MIN_EXP = %d\0A\00"
@DBL_MIN_EXP = global i32 0
@.str.19 = [25 x i8] c" FLT_MIN_10_EXP = %d\0A\00"
@FLT_MIN_10_EXP = global i32 0
@.str.20 = [25 x i8] c" DBL_MIN_10_EXP = %d\0A\00"
@DBL_MIN_10_EXP = global i32 0
@.str.21 = [22 x i8] c" FLT_MAX_EXP = %d\0A\00"
@FLT_MAX_EXP = global i32 0
@.str.22 = [22 x i8] c" DBL_MAX_EXP = %d\0A\00"
@DBL_MAX_EXP = global i32 0
@.str.23 = [25 x i8] c" FLT_MAX_10_EXP = %d\0A\00"
@FLT_MAX_10_EXP = global i32 0
@.str.24 = [25 x i8] c" DBL_MAX_10_EXP = %d\0A\00"
@DBL_MAX_10_EXP = global i32 0
@.str.25 = [18 x i8] c" FLT_MAX = %e\0A\00"
@FLT_MAX = global double 0.000000e+00
@.str.26 = [18 x i8] c" DBL_MAX = %e\0A\00"
@DBL_MAX = global double 0.000000e+00
@.str.27 = [22 x i8] c" FLT_EPSILON = %e\0A\00"
@FLT_EPSILON = global double 0.000000e+00
@.str.28 = [22 x i8] c" DBL_EPSILON = %e\0A\00"
@DBL_EPSILON = global double 0.000000e+00
@.str.29 = [18 x i8] c" FLT_MIN = %e\0A\00"
@FLT_MIN = global double 0.000000e+00
@.str.30 = [18 x i8] c" DBL_MIN = %e\0A\00"
@DBL_MIN = global double 0.000000e+00
@.str.31 = [29 x i8] c" FLT_TRUE_MIN = undefined\00"
@.str.32 = [29 x i8] c" DBL_TRUE_MIN = undefined\00"
@.str.33 = [30 x i8] c" LDBL_TRUE_MIN = undefined\00"
define void @show_float_h() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.2, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.3, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.4, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.5, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.6, i64 0, i64 0))
%8 = load i32, i32* @FLT_RADIX
%9 = sitofp i32 %8 to double
%10 = tail call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.7, i64 0, i64 0), double %9)
%11 = load i32, i32* @FLT_MANT_DIG
%12 = sitofp i32 %11 to double
%13 = tail call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.8, i64 0, i64 0), double %12)
%14 = load i32, i32* @DBL_MANT_DIG
%15 = sitofp i32 %14 to double
%16 = tail call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.9, i64 0, i64 0), double %15)
%17 = load i32, i32* @LDBL_MANT_DIG
%18 = sitofp i32 %17 to double
%19 = tail call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.10, i64 0, i64 0), double %18)
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.11, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.12, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.13, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.14, i64 0, i64 0))
%24 = load i32, i32* @FLT_DIG
%25 = sitofp i32 %24 to double
%26 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), double %25)
%27 = load i32, i32* @DBL_DIG
%28 = sitofp i32 %27 to double
%29 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.16, i64 0, i64 0), double %28)
%30 = load i32, i32* @FLT_MIN_EXP
%31 = sitofp i32 %30 to double
%32 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.17, i64 0, i64 0), double %31)
%33 = load i32, i32* @DBL_MIN_EXP
%34 = sitofp i32 %33 to double
%35 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.18, i64 0, i64 0), double %34)
%36 = load i32, i32* @FLT_MIN_10_EXP
%37 = sitofp i32 %36 to double
%38 = tail call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.19, i64 0, i64 0), double %37)
%39 = load i32, i32* @DBL_MIN_10_EXP
%40 = sitofp i32 %39 to double
%41 = tail call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.20, i64 0, i64 0), double %40)
%42 = load i32, i32* @FLT_MAX_EXP
%43 = sitofp i32 %42 to double
%44 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.21, i64 0, i64 0), double %43)
%45 = load i32, i32* @DBL_MAX_EXP
%46 = sitofp i32 %45 to double
%47 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.22, i64 0, i64 0), double %46)
%48 = load i32, i32* @FLT_MAX_10_EXP
%49 = sitofp i32 %48 to double
%50 = tail call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.23, i64 0, i64 0), double %49)
%51 = load i32, i32* @DBL_MAX_10_EXP
%52 = sitofp i32 %51 to double
%53 = tail call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.24, i64 0, i64 0), double %52)
%54 = load double, double* @FLT_MAX
%55 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.25, i64 0, i64 0), double %54)
%56 = load double, double* @DBL_MAX
%57 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.26, i64 0, i64 0), double %56)
%58 = load double, double* @FLT_EPSILON
%59 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), double %58)
%60 = load double, double* @DBL_EPSILON
%61 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.28, i64 0, i64 0), double %60)
%62 = load double, double* @FLT_MIN
%63 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.29, i64 0, i64 0), double %62)
%64 = load double, double* @DBL_MIN
%65 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.30, i64 0, i64 0), double %64)
%66 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.31, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.32, i64 0, i64 0))
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.33, i64 0, i64 0))
%69 = tail call i32 @putchar(i8 signext 10)
ret void
}