int fn6(int n) {
  if (n)
    return n;
  else if (n)
    return n;
  else if (n)
    return n;
  else if (n)
    return n;
  else if (n)
    return n;
  else if (n)
    return n;
  else if (n)
    return n;
  else if (n)
    return n;
  return 0;
}


x86 assembly (clang, -O0):
<fn6>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
cmpl   $0x0,-0x8(%rbp)
je     111c <fn6+0x1c>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     1131 <fn6+0x31>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     1146 <fn6+0x46>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     115b <fn6+0x5b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     1170 <fn6+0x70>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     1185 <fn6+0x85>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     119a <fn6+0x9a>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
cmpl   $0x0,-0x8(%rbp)
je     11af <fn6+0xaf>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    11d9 <fn6+0xd9>
jmp    11b4 <fn6+0xb4>
jmp    11b9 <fn6+0xb9>
jmp    11be <fn6+0xbe>
jmp    11c3 <fn6+0xc3>
jmp    11c8 <fn6+0xc8>
jmp    11cd <fn6+0xcd>
jmp    11d2 <fn6+0xd2>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<fn6>:
mov    %edi,%eax
ret

LLVM IR (-O0):
define i32 @fn6(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
%5 = icmp ne i32 %4, 0
br i1 %5, label %6, label %8
6: ; preds = %1
%7 = load i32, i32* %3
store i32 %7, i32* %2
br label %51
8: ; preds = %1
%9 = load i32, i32* %3
%10 = icmp ne i32 %9, 0
br i1 %10, label %11, label %13
11: ; preds = %8
%12 = load i32, i32* %3
store i32 %12, i32* %2
br label %51
13: ; preds = %8
%14 = load i32, i32* %3
%15 = icmp ne i32 %14, 0
br i1 %15, label %16, label %18
16: ; preds = %13
%17 = load i32, i32* %3
store i32 %17, i32* %2
br label %51
18: ; preds = %13
%19 = load i32, i32* %3
%20 = icmp ne i32 %19, 0
br i1 %20, label %21, label %23
21: ; preds = %18
%22 = load i32, i32* %3
store i32 %22, i32* %2
br label %51
23: ; preds = %18
%24 = load i32, i32* %3
%25 = icmp ne i32 %24, 0
br i1 %25, label %26, label %28
26: ; preds = %23
%27 = load i32, i32* %3
store i32 %27, i32* %2
br label %51
28: ; preds = %23
%29 = load i32, i32* %3
%30 = icmp ne i32 %29, 0
br i1 %30, label %31, label %33
31: ; preds = %28
%32 = load i32, i32* %3
store i32 %32, i32* %2
br label %51
33: ; preds = %28
%34 = load i32, i32* %3
%35 = icmp ne i32 %34, 0
br i1 %35, label %36, label %38
36: ; preds = %33
%37 = load i32, i32* %3
store i32 %37, i32* %2
br label %51
38: ; preds = %33
%39 = load i32, i32* %3
%40 = icmp ne i32 %39, 0
br i1 %40, label %41, label %43
41: ; preds = %38
%42 = load i32, i32* %3
store i32 %42, i32* %2
br label %51
43: ; preds = %38
br label %44
44: ; preds = %43
br label %45
45: ; preds = %44
br label %46
46: ; preds = %45
br label %47
47: ; preds = %46
br label %48
48: ; preds = %47
br label %49
49: ; preds = %48
br label %50
50: ; preds = %49
store i32 0, i32* %2
br label %51
51: ; preds = %50, %41, %36, %31, %26, %21, %16, %11, %6
%52 = load i32, i32* %2
ret i32 %52
}

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