#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 */
typedef int __u32;

/* Variables and functions */
__u32 crush_hash32_rjenkins1(__u32 a) {
  __u32 hash = 1315423911 ^ a;
  __u32 b = a;
  __u32 x = 231232;
  __u32 y = 1232;
  do {
    b = b - x;
    b = b - hash;
    b = b ^ (hash >> 13);
    x = x - hash;
    x = x - b;
    x = x ^ (b << 8);
    hash = hash - b;
    hash = hash - x;
    hash = hash ^ (x >> 13);
    b = b - x;
    b = b - hash;
    b = b ^ (hash >> 12);
    x = x - hash;
    x = x - b;
    x = x ^ (b << 16);
    hash = hash - b;
    hash = hash - x;
    hash = hash ^ (x >> 5);
    b = b - x;
    b = b - hash;
    b = b ^ (hash >> 3);
    x = x - hash;
    x = x - b;
    x = x ^ (b << 10);
    hash = hash - b;
    hash = hash - x;
    hash = hash ^ (x >> 15);
  } while (0);
  do {
    y = y - a;
    y = y - hash;
    y = y ^ (hash >> 13);
    a = a - hash;
    a = a - y;
    a = a ^ (y << 8);
    hash = hash - y;
    hash = hash - a;
    hash = hash ^ (a >> 13);
    y = y - a;
    y = y - hash;
    y = y ^ (hash >> 12);
    a = a - hash;
    a = a - y;
    a = a ^ (y << 16);
    hash = hash - y;
    hash = hash - a;
    hash = hash ^ (a >> 5);
    y = y - a;
    y = y - hash;
    y = y ^ (hash >> 3);
    a = a - hash;
    a = a - y;
    a = a ^ (y << 10);
    hash = hash - y;
    hash = hash - a;
    hash = hash ^ (a >> 15);
  } while (0);
  return hash;
}


x86 assembly (clang, -O0):
<crush_hash32_rjenkins1>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    -0x4(%rbp),%eax
xor    $0x4e67c6a7,%eax
mov    %eax,-0x8(%rbp)
mov    -0x4(%rbp),%eax
mov    %eax,-0xc(%rbp)
movl   $0x38740,-0x10(%rbp)
movl   $0x4d0,-0x14(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%ecx
sar    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
sub    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    -0xc(%rbp),%ecx
shl    $0x8,%ecx
xor    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x8(%rbp),%eax
sub    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x10(%rbp),%ecx
sar    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x8(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%ecx
sar    $0xc,%ecx
xor    %ecx,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
sub    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    -0xc(%rbp),%ecx
shl    $0x10,%ecx
xor    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x8(%rbp),%eax
sub    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x10(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    %eax,-0x8(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x8(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
sub    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    -0xc(%rbp),%ecx
shl    $0xa,%ecx
xor    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x8(%rbp),%eax
sub    -0xc(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x10(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x10(%rbp),%ecx
sar    $0xf,%ecx
xor    %ecx,%eax
mov    %eax,-0x8(%rbp)
jmp    124b <crush_hash32_rjenkins1+0x14b>
mov    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x8(%rbp),%ecx
sar    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
mov    -0x14(%rbp),%ecx
shl    $0x8,%ecx
xor    %ecx,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x4(%rbp),%ecx
sar    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x8(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x8(%rbp),%ecx
sar    $0xc,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
mov    -0x14(%rbp),%ecx
shl    $0x10,%ecx
xor    %ecx,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x4(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    %eax,-0x8(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x8(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
mov    -0x14(%rbp),%ecx
shl    $0xa,%ecx
xor    %ecx,%eax
mov    %eax,-0x4(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x4(%rbp),%ecx
sar    $0xf,%ecx
xor    %ecx,%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<crush_hash32_rjenkins1>:
mov    %edi,%ecx
xor    $0x4e67c6a7,%ecx
mov    %edi,%edx
sub    %ecx,%edx
add    $0xfffc78c0,%edx
mov    %ecx,%eax
sar    $0xd,%eax
xor    %edx,%eax
mov    $0x38740,%esi
sub    %ecx,%esi
sub    %eax,%esi
mov    %eax,%edx
shl    $0x8,%edx
xor    %esi,%edx
sub    %eax,%ecx
sub    %edx,%ecx
mov    %edx,%esi
sar    $0xd,%esi
xor    %ecx,%esi
sub    %edx,%eax
sub    %esi,%eax
mov    %esi,%ecx
sar    $0xc,%ecx
xor    %eax,%ecx
sub    %esi,%edx
sub    %ecx,%edx
mov    %ecx,%r8d
shl    $0x10,%r8d
xor    %edx,%r8d
sub    %ecx,%esi
sub    %r8d,%esi
mov    %r8d,%edx
sar    $0x5,%edx
xor    %esi,%edx
sub    %r8d,%ecx
sub    %edx,%ecx
mov    %edx,%esi
sar    $0x3,%esi
xor    %ecx,%esi
sub    %edx,%r8d
sub    %esi,%r8d
mov    %esi,%eax
shl    $0xa,%eax
xor    %r8d,%eax
add    %eax,%esi
sub    %esi,%edx
sar    $0xf,%eax
xor    %edx,%eax
mov    $0x4d0,%edx
sub    %eax,%edx
sub    %edi,%edx
mov    %eax,%ecx
sar    $0xd,%ecx
xor    %edx,%ecx
sub    %eax,%edi
sub    %ecx,%edi
mov    %ecx,%edx
shl    $0x8,%edx
xor    %edi,%edx
sub    %ecx,%eax
sub    %edx,%eax
mov    %edx,%esi
sar    $0xd,%esi
xor    %eax,%esi
sub    %edx,%ecx
sub    %esi,%ecx
mov    %esi,%eax
sar    $0xc,%eax
xor    %ecx,%eax
sub    %esi,%edx
sub    %eax,%edx
mov    %eax,%ecx
shl    $0x10,%ecx
xor    %edx,%ecx
sub    %eax,%esi
sub    %ecx,%esi
mov    %ecx,%edx
sar    $0x5,%edx
xor    %esi,%edx
sub    %ecx,%eax
sub    %edx,%eax
mov    %edx,%esi
sar    $0x3,%esi
xor    %eax,%esi
sub    %edx,%ecx
sub    %esi,%ecx
mov    %esi,%eax
shl    $0xa,%eax
xor    %ecx,%eax
add    %eax,%esi
sub    %esi,%edx
sar    $0xf,%eax
xor    %edx,%eax
ret

LLVM IR (-O0):
define i32 @crush_hash32_rjenkins1(i32 %0) {
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
store i32 %0, i32* %2
%7 = load i32, i32* %2
%8 = xor i32 1315423911, %7
store i32 %8, i32* %3
%9 = load i32, i32* %2
store i32 %9, i32* %4
store i32 231232, i32* %5
store i32 1232, i32* %6
br label %10
10: ; preds = %1
%11 = load i32, i32* %4
%12 = load i32, i32* %5
%13 = sub nsw i32 %11, %12
store i32 %13, i32* %4
%14 = load i32, i32* %4
%15 = load i32, i32* %3
%16 = sub nsw i32 %14, %15
store i32 %16, i32* %4
%17 = load i32, i32* %4
%18 = load i32, i32* %3
%19 = ashr i32 %18, 13
%20 = xor i32 %17, %19
store i32 %20, i32* %4
%21 = load i32, i32* %5
%22 = load i32, i32* %3
%23 = sub nsw i32 %21, %22
store i32 %23, i32* %5
%24 = load i32, i32* %5
%25 = load i32, i32* %4
%26 = sub nsw i32 %24, %25
store i32 %26, i32* %5
%27 = load i32, i32* %5
%28 = load i32, i32* %4
%29 = shl i32 %28, 8
%30 = xor i32 %27, %29
store i32 %30, i32* %5
%31 = load i32, i32* %3
%32 = load i32, i32* %4
%33 = sub nsw i32 %31, %32
store i32 %33, i32* %3
%34 = load i32, i32* %3
%35 = load i32, i32* %5
%36 = sub nsw i32 %34, %35
store i32 %36, i32* %3
%37 = load i32, i32* %3
%38 = load i32, i32* %5
%39 = ashr i32 %38, 13
%40 = xor i32 %37, %39
store i32 %40, i32* %3
%41 = load i32, i32* %4
%42 = load i32, i32* %5
%43 = sub nsw i32 %41, %42
store i32 %43, i32* %4
%44 = load i32, i32* %4
%45 = load i32, i32* %3
%46 = sub nsw i32 %44, %45
store i32 %46, i32* %4
%47 = load i32, i32* %4
%48 = load i32, i32* %3
%49 = ashr i32 %48, 12
%50 = xor i32 %47, %49
store i32 %50, i32* %4
%51 = load i32, i32* %5
%52 = load i32, i32* %3
%53 = sub nsw i32 %51, %52
store i32 %53, i32* %5
%54 = load i32, i32* %5
%55 = load i32, i32* %4
%56 = sub nsw i32 %54, %55
store i32 %56, i32* %5
%57 = load i32, i32* %5
%58 = load i32, i32* %4
%59 = shl i32 %58, 16
%60 = xor i32 %57, %59
store i32 %60, i32* %5
%61 = load i32, i32* %3
%62 = load i32, i32* %4
%63 = sub nsw i32 %61, %62
store i32 %63, i32* %3
%64 = load i32, i32* %3
%65 = load i32, i32* %5
%66 = sub nsw i32 %64, %65
store i32 %66, i32* %3
%67 = load i32, i32* %3
%68 = load i32, i32* %5
%69 = ashr i32 %68, 5
%70 = xor i32 %67, %69
store i32 %70, i32* %3
%71 = load i32, i32* %4
%72 = load i32, i32* %5
%73 = sub nsw i32 %71, %72
store i32 %73, i32* %4
%74 = load i32, i32* %4
%75 = load i32, i32* %3
%76 = sub nsw i32 %74, %75
store i32 %76, i32* %4
%77 = load i32, i32* %4
%78 = load i32, i32* %3
%79 = ashr i32 %78, 3
%80 = xor i32 %77, %79
store i32 %80, i32* %4
%81 = load i32, i32* %5
%82 = load i32, i32* %3
%83 = sub nsw i32 %81, %82
store i32 %83, i32* %5
%84 = load i32, i32* %5
%85 = load i32, i32* %4
%86 = sub nsw i32 %84, %85
store i32 %86, i32* %5
%87 = load i32, i32* %5
%88 = load i32, i32* %4
%89 = shl i32 %88, 10
%90 = xor i32 %87, %89
store i32 %90, i32* %5
%91 = load i32, i32* %3
%92 = load i32, i32* %4
%93 = sub nsw i32 %91, %92
store i32 %93, i32* %3
%94 = load i32, i32* %3
%95 = load i32, i32* %5
%96 = sub nsw i32 %94, %95
store i32 %96, i32* %3
%97 = load i32, i32* %3
%98 = load i32, i32* %5
%99 = ashr i32 %98, 15
%100 = xor i32 %97, %99
store i32 %100, i32* %3
br label %101
101: ; preds = %10
br label %102
102: ; preds = %101
%103 = load i32, i32* %6
%104 = load i32, i32* %2
%105 = sub nsw i32 %103, %104
store i32 %105, i32* %6
%106 = load i32, i32* %6
%107 = load i32, i32* %3
%108 = sub nsw i32 %106, %107
store i32 %108, i32* %6
%109 = load i32, i32* %6
%110 = load i32, i32* %3
%111 = ashr i32 %110, 13
%112 = xor i32 %109, %111
store i32 %112, i32* %6
%113 = load i32, i32* %2
%114 = load i32, i32* %3
%115 = sub nsw i32 %113, %114
store i32 %115, i32* %2
%116 = load i32, i32* %2
%117 = load i32, i32* %6
%118 = sub nsw i32 %116, %117
store i32 %118, i32* %2
%119 = load i32, i32* %2
%120 = load i32, i32* %6
%121 = shl i32 %120, 8
%122 = xor i32 %119, %121
store i32 %122, i32* %2
%123 = load i32, i32* %3
%124 = load i32, i32* %6
%125 = sub nsw i32 %123, %124
store i32 %125, i32* %3
%126 = load i32, i32* %3
%127 = load i32, i32* %2
%128 = sub nsw i32 %126, %127
store i32 %128, i32* %3
%129 = load i32, i32* %3
%130 = load i32, i32* %2
%131 = ashr i32 %130, 13
%132 = xor i32 %129, %131
store i32 %132, i32* %3
%133 = load i32, i32* %6
%134 = load i32, i32* %2
%135 = sub nsw i32 %133, %134
store i32 %135, i32* %6
%136 = load i32, i32* %6
%137 = load i32, i32* %3
%138 = sub nsw i32 %136, %137
store i32 %138, i32* %6
%139 = load i32, i32* %6
%140 = load i32, i32* %3
%141 = ashr i32 %140, 12
%142 = xor i32 %139, %141
store i32 %142, i32* %6
%143 = load i32, i32* %2
%144 = load i32, i32* %3
%145 = sub nsw i32 %143, %144
store i32 %145, i32* %2
%146 = load i32, i32* %2
%147 = load i32, i32* %6
%148 = sub nsw i32 %146, %147
store i32 %148, i32* %2
%149 = load i32, i32* %2
%150 = load i32, i32* %6
%151 = shl i32 %150, 16
%152 = xor i32 %149, %151
store i32 %152, i32* %2
%153 = load i32, i32* %3
%154 = load i32, i32* %6
%155 = sub nsw i32 %153, %154
store i32 %155, i32* %3
%156 = load i32, i32* %3
%157 = load i32, i32* %2
%158 = sub nsw i32 %156, %157
store i32 %158, i32* %3
%159 = load i32, i32* %3
%160 = load i32, i32* %2
%161 = ashr i32 %160, 5
%162 = xor i32 %159, %161
store i32 %162, i32* %3
%163 = load i32, i32* %6
%164 = load i32, i32* %2
%165 = sub nsw i32 %163, %164
store i32 %165, i32* %6
%166 = load i32, i32* %6
%167 = load i32, i32* %3
%168 = sub nsw i32 %166, %167
store i32 %168, i32* %6
%169 = load i32, i32* %6
%170 = load i32, i32* %3
%171 = ashr i32 %170, 3
%172 = xor i32 %169, %171
store i32 %172, i32* %6
%173 = load i32, i32* %2
%174 = load i32, i32* %3
%175 = sub nsw i32 %173, %174
store i32 %175, i32* %2
%176 = load i32, i32* %2
%177 = load i32, i32* %6
%178 = sub nsw i32 %176, %177
store i32 %178, i32* %2
%179 = load i32, i32* %2
%180 = load i32, i32* %6
%181 = shl i32 %180, 10
%182 = xor i32 %179, %181
store i32 %182, i32* %2
%183 = load i32, i32* %3
%184 = load i32, i32* %6
%185 = sub nsw i32 %183, %184
store i32 %185, i32* %3
%186 = load i32, i32* %3
%187 = load i32, i32* %2
%188 = sub nsw i32 %186, %187
store i32 %188, i32* %3
%189 = load i32, i32* %3
%190 = load i32, i32* %2
%191 = ashr i32 %190, 15
%192 = xor i32 %189, %191
store i32 %192, i32* %3
br label %193
193: ; preds = %102
%194 = load i32, i32* %3
ret i32 %194
}

LLVM IR (-O2):
define i32 @crush_hash32_rjenkins1(i32 %0) {
%2 = xor i32 %0, 1315423911
%3 = add nsw i32 %0, -231232
%4 = sub i32 %3, %2
%5 = ashr i32 %2, 13
%6 = xor i32 %4, %5
%7 = add i32 %2, %6
%8 = sub i32 231232, %7
%9 = shl i32 %6, 8
%10 = xor i32 %8, %9
%11 = add i32 %6, %10
%12 = sub i32 %2, %11
%13 = ashr i32 %10, 13
%14 = xor i32 %12, %13
%15 = add i32 %10, %14
%16 = sub i32 %6, %15
%17 = ashr i32 %14, 12
%18 = xor i32 %16, %17
%19 = add i32 %14, %18
%20 = sub i32 %10, %19
%21 = shl i32 %18, 16
%22 = xor i32 %20, %21
%23 = add i32 %18, %22
%24 = sub i32 %14, %23
%25 = ashr i32 %22, 5
%26 = xor i32 %24, %25
%27 = add i32 %22, %26
%28 = sub i32 %18, %27
%29 = ashr i32 %26, 3
%30 = xor i32 %28, %29
%31 = add i32 %26, %30
%32 = sub i32 %22, %31
%33 = shl i32 %30, 10
%34 = xor i32 %32, %33
%35 = add i32 %30, %34
%36 = sub i32 %26, %35
%37 = ashr i32 %34, 15
%38 = xor i32 %36, %37
%39 = add i32 %38, %0
%40 = sub i32 1232, %39
%41 = ashr i32 %38, 13
%42 = xor i32 %40, %41
%43 = add i32 %38, %42
%44 = sub i32 %0, %43
%45 = shl i32 %42, 8
%46 = xor i32 %44, %45
%47 = add i32 %42, %46
%48 = sub i32 %38, %47
%49 = ashr i32 %46, 13
%50 = xor i32 %48, %49
%51 = add i32 %46, %50
%52 = sub i32 %42, %51
%53 = ashr i32 %50, 12
%54 = xor i32 %52, %53
%55 = add i32 %50, %54
%56 = sub i32 %46, %55
%57 = shl i32 %54, 16
%58 = xor i32 %56, %57
%59 = add i32 %54, %58
%60 = sub i32 %50, %59
%61 = ashr i32 %58, 5
%62 = xor i32 %60, %61
%63 = add i32 %58, %62
%64 = sub i32 %54, %63
%65 = ashr i32 %62, 3
%66 = xor i32 %64, %65
%67 = add i32 %62, %66
%68 = sub i32 %58, %67
%69 = shl i32 %66, 10
%70 = xor i32 %68, %69
%71 = add i32 %66, %70
%72 = sub i32 %62, %71
%73 = ashr i32 %70, 15
%74 = xor i32 %72, %73
ret i32 %74
}