int main(void) {
  long result_int = 0;
  float result_real = 0.0;
  result_int = result_int + 42;
  result_int = result_int - 89;
  result_int = result_int * 10;
  result_int = result_int / 5;
  result_int = result_int % 2;
  result_int = ((result_int + 10) * 3) % ((result_int - 42) / 6);
  result_real = result_real + 3.14;
  result_real = result_real - 2.72;
  result_real = result_real * 10;
  result_real = result_real / 256;
  result_real = ((result_real + 99.9) / 16.6) * ((result_real - 33.3) / 66.6);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
movl   $0x0,-0x4(%rbp)
movq   $0x0,-0x10(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2a,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
sub    $0x59,%rax
mov    %rax,-0x10(%rbp)
imul   $0xa,-0x10(%rbp),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    $0x5,%ecx
cqto
idiv   %rcx
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    $0x2,%ecx
cqto
idiv   %rcx
mov    %rdx,-0x10(%rbp)
mov    -0x10(%rbp),%rax
add    $0xa,%rax
imul   $0x3,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
sub    $0x2a,%rax
mov    $0x6,%ecx
cqto
idiv   %rcx
mov    %rax,%rcx
mov    -0x20(%rbp),%rax
cqto
idiv   %rcx
mov    %rdx,-0x10(%rbp)
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe85(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe5f(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  0xe5e(%rip),%xmm0
mulss  -0x14(%rbp),%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x14(%rbp),%xmm0
movss  0xe43(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe11(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xdfd(%rip),%xmm1
divsd  %xmm1,%xmm0
movss  -0x14(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xde0(%rip),%xmm2
subsd  %xmm2,%xmm1
movsd  0xdcc(%rip),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
xor    %eax,%eax
ret

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
%2 = alloca i64
%3 = alloca float
store i32 0, i32* %1
store i64 0, i64* %2
store float 0.000000e+00, float* %3
%4 = load i64, i64* %2
%5 = add nsw i64 %4, 42
store i64 %5, i64* %2
%6 = load i64, i64* %2
%7 = sub nsw i64 %6, 89
store i64 %7, i64* %2
%8 = load i64, i64* %2
%9 = mul nsw i64 %8, 10
store i64 %9, i64* %2
%10 = load i64, i64* %2
%11 = sdiv i64 %10, 5
store i64 %11, i64* %2
%12 = load i64, i64* %2
%13 = srem i64 %12, 2
store i64 %13, i64* %2
%14 = load i64, i64* %2
%15 = add nsw i64 %14, 10
%16 = mul nsw i64 %15, 3
%17 = load i64, i64* %2
%18 = sub nsw i64 %17, 42
%19 = sdiv i64 %18, 6
%20 = srem i64 %16, %19
store i64 %20, i64* %2
%21 = load float, float* %3
%22 = fpext float %21 to double
%23 = fadd double %22, 3.140000e+00
%24 = fptrunc double %23 to float
store float %24, float* %3
%25 = load float, float* %3
%26 = fpext float %25 to double
%27 = fsub double %26, 2.720000e+00
%28 = fptrunc double %27 to float
store float %28, float* %3
%29 = load float, float* %3
%30 = fmul float %29, 1.000000e+01
store float %30, float* %3
%31 = load float, float* %3
%32 = fdiv float %31, 2.560000e+02
store float %32, float* %3
%33 = load float, float* %3
%34 = fpext float %33 to double
%35 = fadd double %34, 9.990000e+01
%36 = fdiv double %35, 1.660000e+01
%37 = load float, float* %3
%38 = fpext float %37 to double
%39 = fsub double %38, 3.330000e+01
%40 = fdiv double %39, 6.660000e+01
%41 = fmul double %36, %40
%42 = fptrunc double %41 to float
store float %42, float* %3
ret i32 0
}

LLVM IR (-O2):
define i32 @main() {
ret i32 0
}