[llvm] r300746 - [SCEV] Make SCEV or modeling more aggressive.

Michel Dänzer via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 20 02:59:15 PDT 2017


Hi Eli,


On 20/04/17 05:19 AM, Eli Friedman via llvm-commits wrote:
> Author: efriedma
> Date: Wed Apr 19 15:19:58 2017
> New Revision: 300746
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=300746&view=rev
> Log:
> [SCEV] Make SCEV or modeling more aggressive.
> 
> Use haveNoCommonBitsSet to figure out whether an "or" instruction
> is equivalent to addition. This handles more cases than just
> checking for a constant on the RHS.
> 
> Differential Revision: https://reviews.llvm.org/D32239

This change caused a crash when feeding the attached LLVM IR (for the
AMDGPU backend) to llc -march=amdgcn:

#0 0x00007f1522a48909 llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/daenzer/src/llvm-git/llvm/build-amd64/../lib/Support/Unix/Signals.inc:398:13
#1 0x00007f1522a48909 PrintStackTraceSignalHandler(void*) /home/daenzer/src/llvm-git/llvm/build-amd64/../lib/Support/Unix/Signals.inc:461:0
#2 0x00007f1522a48c46 bool __gnu_cxx::operator!=<std::pair<void (*)(void*), void*>*, std::vector<std::pair<void (*)(void*), void*>, std::allocator<std::pair<void (*)(void*), void*> > > >(__gnu_cxx::__normal_iterator<std::pair<void (*)(void*), void*>*, std::vector<std::pair<void (*)(void*), void*>, std::allocator<std::pair<void (*)(void*), void*> > > > const&, __gnu_cxx::__normal_iterator<std::pair<void (*)(void*), void*>*, std::vector<std::pair<void (*)(void*), void*>, std::allocator<std::pair<void (*)(void*), void*> > > > const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h:880:27
#3 0x00007f1522a48c46 llvm::sys::RunSignalHandlers() /home/daenzer/src/llvm-git/llvm/lib/Support/Signals.cpp:43:0
#4 0x00007f1522a48c46 SignalHandler(int) /home/daenzer/src/llvm-git/llvm/build-amd64/../lib/Support/Unix/Signals.inc:242:0
#5 0x00007f15222d40c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
#6 0x00007f15237bbb9f computeKnownBitsFromOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:938:5
#7 0x00007f15237b0651 llvm::Value::getType() const /home/daenzer/src/llvm-git/llvm/build-amd64/../include/llvm/IR/Value.h:230:34
#8 0x00007f15237b0651 computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:1591:0
#9 0x00007f15237c40f4 computeKnownBitsAddSub(bool, llvm::Value const*, llvm::Value const*, bool, llvm::APInt&, llvm::APInt&, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:264:3
#10 0x00007f15237bc764 computeKnownBitsFromOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:0:5
#11 0x00007f15237b0651 llvm::Value::getType() const /home/daenzer/src/llvm-git/llvm/build-amd64/../include/llvm/IR/Value.h:230:34
#12 0x00007f15237b0651 computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:1591:0
#13 0x00007f15237c40f4 computeKnownBitsAddSub(bool, llvm::Value const*, llvm::Value const*, bool, llvm::APInt&, llvm::APInt&, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:264:3
#14 0x00007f15237bc764 computeKnownBitsFromOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:0:5
#15 0x00007f15237b0651 llvm::Value::getType() const /home/daenzer/src/llvm-git/llvm/build-amd64/../include/llvm/IR/Value.h:230:34
#16 0x00007f15237b0651 computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:1591:0
#17 0x00007f15237c40f4 computeKnownBitsAddSub(bool, llvm::Value const*, llvm::Value const*, bool, llvm::APInt&, llvm::APInt&, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:264:3
#18 0x00007f15237bc764 computeKnownBitsFromOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:0:5
#19 0x00007f15237b0651 llvm::Value::getType() const /home/daenzer/src/llvm-git/llvm/build-amd64/../include/llvm/IR/Value.h:230:34
#20 0x00007f15237b0651 computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:1591:0
#21 0x00007f15237c40f4 computeKnownBitsAddSub(bool, llvm::Value const*, llvm::Value const*, bool, llvm::APInt&, llvm::APInt&, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:264:3
#22 0x00007f15237bc764 computeKnownBitsFromOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:0:5
#23 0x00007f15237b0651 llvm::Value::getType() const /home/daenzer/src/llvm-git/llvm/build-amd64/../include/llvm/IR/Value.h:230:34
#24 0x00007f15237b0651 computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:1591:0
#25 0x00007f15237c378c computeKnownBitsFromShiftOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&, llvm::function_ref<llvm::APInt (llvm::APInt const&, unsigned int)>, llvm::function_ref<llvm::APInt (llvm::APInt const&, unsigned int)>) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:813:5
#26 0x00007f15237bb828 computeKnownBitsFromOperator(llvm::Operator const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:0:5
#27 0x00007f15237b0651 llvm::Value::getType() const /home/daenzer/src/llvm-git/llvm/build-amd64/../include/llvm/IR/Value.h:230:34
#28 0x00007f15237b0651 computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, unsigned int, (anonymous namespace)::Query const&) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:1591:0
#29 0x00007f15237b0a5b safeCxtI(llvm::Value const*, llvm::Instruction const*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:122:7
#30 0x00007f15237b0a5b llvm::computeKnownBits(llvm::Value const*, llvm::APInt&, llvm::APInt&, llvm::DataLayout const&, unsigned int, llvm::AssumptionCache*, llvm::Instruction const*, llvm::DominatorTree const*, llvm::OptimizationRemarkEmitter*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:142:0
#31 0x00007f15237b0a5b llvm::haveNoCommonBitsSet(llvm::Value const*, llvm::Value const*, llvm::DataLayout const&, llvm::AssumptionCache*, llvm::Instruction const*, llvm::DominatorTree const*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ValueTracking.cpp:156:0
#32 0x00007f15237566ae llvm::ScalarEvolution::createSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:5332:11
#33 0x00007f1523752f15 llvm::ScalarEvolution::getSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:3574:7
#34 0x00007f15237562f5 llvm::ScalarEvolution::createSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:5213:29
#35 0x00007f1523752f15 llvm::ScalarEvolution::getSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:3574:7
#36 0x00007f152375738f llvm::ScalarEvolution::createSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:5403:25
#37 0x00007f1523752f15 llvm::ScalarEvolution::getSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:3574:7
#38 0x00007f15237566d2 llvm::ScalarEvolution::createSCEV(llvm::Value*) /home/daenzer/src/llvm-git/llvm/lib/Analysis/ScalarEvolution.cpp:5336:27
[...]


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
-------------- next part --------------
; ModuleID = 'link'
source_filename = "link"
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
target triple = "amdgcn-mesa-mesa3d"

%struct.SHA_DEV_CTX = type { i32, i32, i32, i32, i32 }
%struct.gpu_inbuffer = type { %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX }
%struct.gpu_outbuffer = type { %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX }

; Function Attrs: nounwind
define amdgpu_kernel void @sha1_process_test(%struct.SHA_DEV_CTX addrspace(1)* nocapture readonly %ctxp, %struct.SHA_DEV_CTX addrspace(1)* nocapture %data) local_unnamed_addr #0 !kernel_arg_addr_space !0 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 {
entry:
  %data_priv = alloca %struct.SHA_DEV_CTX, align 4
  %ctx_priv = alloca %struct.SHA_DEV_CTX, align 4
  %0 = bitcast %struct.SHA_DEV_CTX* %data_priv to i8*
  call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %0) #4
  %1 = bitcast %struct.SHA_DEV_CTX* %ctx_priv to i8*
  call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %1) #4
  %h0 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %data, i64 0, i32 0
  %2 = load i32, i32 addrspace(1)* %h0, align 4, !tbaa !5
  %h01 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data_priv, i32 0, i32 0
  store i32 %2, i32* %h01, align 4, !tbaa !5
  %h1 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %data, i64 0, i32 1
  %3 = load i32, i32 addrspace(1)* %h1, align 4, !tbaa !10
  %h13 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data_priv, i32 0, i32 1
  store i32 %3, i32* %h13, align 4, !tbaa !10
  %h2 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %data, i64 0, i32 2
  %4 = load i32, i32 addrspace(1)* %h2, align 4, !tbaa !11
  %h25 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data_priv, i32 0, i32 2
  store i32 %4, i32* %h25, align 4, !tbaa !11
  %h3 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %data, i64 0, i32 3
  %5 = load i32, i32 addrspace(1)* %h3, align 4, !tbaa !12
  %h37 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data_priv, i32 0, i32 3
  store i32 %5, i32* %h37, align 4, !tbaa !12
  %h4 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %data, i64 0, i32 4
  %6 = load i32, i32 addrspace(1)* %h4, align 4, !tbaa !13
  %h49 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data_priv, i32 0, i32 4
  store i32 %6, i32* %h49, align 4, !tbaa !13
  %h011 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %ctxp, i64 0, i32 0
  %7 = load i32, i32 addrspace(1)* %h011, align 4, !tbaa !5
  %h012 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx_priv, i32 0, i32 0
  store i32 %7, i32* %h012, align 4, !tbaa !5
  %h114 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %ctxp, i64 0, i32 1
  %8 = load i32, i32 addrspace(1)* %h114, align 4, !tbaa !10
  %h115 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx_priv, i32 0, i32 1
  store i32 %8, i32* %h115, align 4, !tbaa !10
  %h217 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %ctxp, i64 0, i32 2
  %9 = load i32, i32 addrspace(1)* %h217, align 4, !tbaa !11
  %h218 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx_priv, i32 0, i32 2
  store i32 %9, i32* %h218, align 4, !tbaa !11
  %h320 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %ctxp, i64 0, i32 3
  %10 = load i32, i32 addrspace(1)* %h320, align 4, !tbaa !12
  %h321 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx_priv, i32 0, i32 3
  store i32 %10, i32* %h321, align 4, !tbaa !12
  %h423 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX addrspace(1)* %ctxp, i64 0, i32 4
  %11 = load i32, i32 addrspace(1)* %h423, align 4, !tbaa !13
  %h424 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx_priv, i32 0, i32 4
  store i32 %11, i32* %h424, align 4, !tbaa !13
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ctx_priv, %struct.SHA_DEV_CTX* nonnull %data_priv)
  %12 = load i32, i32* %h01, align 4, !tbaa !5
  store i32 %12, i32 addrspace(1)* %h0, align 4, !tbaa !5
  %13 = load i32, i32* %h13, align 4, !tbaa !10
  store i32 %13, i32 addrspace(1)* %h1, align 4, !tbaa !10
  %14 = load i32, i32* %h25, align 4, !tbaa !11
  store i32 %14, i32 addrspace(1)* %h2, align 4, !tbaa !11
  %15 = load i32, i32* %h37, align 4, !tbaa !12
  store i32 %15, i32 addrspace(1)* %h3, align 4, !tbaa !12
  %16 = load i32, i32* %h49, align 4, !tbaa !13
  store i32 %16, i32 addrspace(1)* %h4, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %1) #4
  call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %0) #4
  ret void
}

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1

; Function Attrs: norecurse nounwind
define internal fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nocapture readonly align 4 %ctx, %struct.SHA_DEV_CTX* nocapture %data) unnamed_addr #2 {
entry:
  %h0 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data, i32 0, i32 0
  %0 = load i32, i32* %h0, align 4, !tbaa !5
  %h1 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data, i32 0, i32 1
  %1 = load i32, i32* %h1, align 4, !tbaa !10
  %h2 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data, i32 0, i32 2
  %2 = load i32, i32* %h2, align 4, !tbaa !11
  %h3 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data, i32 0, i32 3
  %3 = load i32, i32* %h3, align 4, !tbaa !12
  %h4 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %data, i32 0, i32 4
  %4 = load i32, i32* %h4, align 4, !tbaa !13
  %h016 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx, i32 0, i32 0
  %5 = load i32, i32* %h016, align 4, !tbaa !5
  %h117 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx, i32 0, i32 1
  %6 = load i32, i32* %h117, align 4, !tbaa !10
  %h218 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx, i32 0, i32 2
  %7 = load i32, i32* %h218, align 4, !tbaa !11
  %h319 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx, i32 0, i32 3
  %8 = load i32, i32* %h319, align 4, !tbaa !12
  %h420 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ctx, i32 0, i32 4
  %9 = load i32, i32* %h420, align 4, !tbaa !13
  %shl.i = shl i32 %5, 5
  %shr.i = lshr i32 %5, 27
  %or.i = or i32 %shl.i, %shr.i
  %xor = xor i32 %8, %7
  %and = and i32 %xor, %6
  %xor21 = xor i32 %and, %8
  %add = add i32 %0, 1518500249
  %add22 = add i32 %add, %or.i
  %add24 = add i32 %add22, %9
  %add25 = add i32 %add24, %xor21
  %shl.i2879 = shl i32 %6, 30
  %shr.i2880 = lshr i32 %6, 2
  %or.i2881 = or i32 %shl.i2879, %shr.i2880
  %shl.i2876 = shl i32 %add25, 5
  %shr.i2877 = lshr i32 %add25, 27
  %or.i2878 = or i32 %shl.i2876, %shr.i2877
  %xor28 = xor i32 %or.i2881, %7
  %and29 = and i32 %xor28, %5
  %xor30 = xor i32 %and29, %7
  %add31 = add i32 %1, 1518500249
  %add32 = add i32 %add31, %8
  %add34 = add i32 %add32, %xor30
  %add35 = add i32 %add34, %or.i2878
  %shl.i2873 = shl i32 %5, 30
  %shr.i2874 = lshr i32 %5, 2
  %or.i2875 = or i32 %shl.i2873, %shr.i2874
  %shl.i2870 = shl i32 %add35, 5
  %shr.i2871 = lshr i32 %add35, 27
  %or.i2872 = or i32 %shl.i2870, %shr.i2871
  %xor38 = xor i32 %or.i2881, %or.i2875
  %and39 = and i32 %add25, %xor38
  %xor40 = xor i32 %and39, %or.i2881
  %add41 = add i32 %2, 1518500249
  %add42 = add i32 %add41, %7
  %add44 = add i32 %add42, %xor40
  %add45 = add i32 %add44, %or.i2872
  %shl.i2867 = shl i32 %add25, 30
  %shr.i2868 = lshr i32 %add25, 2
  %or.i2869 = or i32 %shl.i2867, %shr.i2868
  %shl.i2864 = shl i32 %add45, 5
  %shr.i2865 = lshr i32 %add45, 27
  %or.i2866 = or i32 %shl.i2864, %shr.i2865
  %xor48 = xor i32 %or.i2869, %or.i2875
  %and49 = and i32 %add35, %xor48
  %xor50 = xor i32 %and49, %or.i2875
  %add51 = add i32 %3, 1518500249
  %add52 = add i32 %add51, %or.i2881
  %add54 = add i32 %add52, %xor50
  %add55 = add i32 %add54, %or.i2866
  %shl.i2861 = shl i32 %add35, 30
  %shr.i2862 = lshr i32 %add35, 2
  %or.i2863 = or i32 %shl.i2861, %shr.i2862
  %shl.i2858 = shl i32 %add55, 5
  %shr.i2859 = lshr i32 %add55, 27
  %or.i2860 = or i32 %shl.i2858, %shr.i2859
  %xor58 = xor i32 %or.i2863, %or.i2869
  %and59 = and i32 %add45, %xor58
  %xor60 = xor i32 %and59, %or.i2869
  %add61 = add i32 %4, 1518500249
  %add62 = add i32 %add61, %or.i2875
  %add64 = add i32 %add62, %xor60
  %add65 = add i32 %add64, %or.i2860
  %shl.i2855 = shl i32 %add45, 30
  %shr.i2856 = lshr i32 %add45, 2
  %or.i2857 = or i32 %shl.i2855, %shr.i2856
  %shl.i2852 = shl i32 %add65, 5
  %shr.i2853 = lshr i32 %add65, 27
  %or.i2854 = or i32 %shl.i2852, %shr.i2853
  %xor68 = xor i32 %or.i2857, %or.i2863
  %and69 = and i32 %add55, %xor68
  %xor70 = xor i32 %and69, %or.i2863
  %add71 = add i32 %or.i2869, -628983399
  %add74 = add i32 %add71, %xor70
  %add75 = add i32 %add74, %or.i2854
  %shl.i2849 = shl i32 %add55, 30
  %shr.i2850 = lshr i32 %add55, 2
  %or.i2851 = or i32 %shl.i2849, %shr.i2850
  %shl.i2846 = shl i32 %add75, 5
  %shr.i2847 = lshr i32 %add75, 27
  %or.i2848 = or i32 %shl.i2846, %shr.i2847
  %xor78 = xor i32 %or.i2851, %or.i2857
  %and79 = and i32 %add65, %xor78
  %xor80 = xor i32 %and79, %or.i2857
  %add81 = add i32 %or.i2863, 1518500249
  %add82 = add i32 %add81, %xor80
  %add85 = add i32 %add82, %or.i2848
  %shl.i2843 = shl i32 %add65, 30
  %shr.i2844 = lshr i32 %add65, 2
  %or.i2845 = or i32 %shl.i2843, %shr.i2844
  %shl.i2840 = shl i32 %add85, 5
  %shr.i2841 = lshr i32 %add85, 27
  %or.i2842 = or i32 %shl.i2840, %shr.i2841
  %xor88 = xor i32 %or.i2845, %or.i2851
  %and89 = and i32 %add75, %xor88
  %xor90 = xor i32 %and89, %or.i2851
  %add91 = add i32 %or.i2857, 1518500249
  %add92 = add i32 %add91, %xor90
  %add95 = add i32 %add92, %or.i2842
  %shl.i2837 = shl i32 %add75, 30
  %shr.i2838 = lshr i32 %add75, 2
  %or.i2839 = or i32 %shl.i2837, %shr.i2838
  %shl.i2834 = shl i32 %add95, 5
  %shr.i2835 = lshr i32 %add95, 27
  %or.i2836 = or i32 %shl.i2834, %shr.i2835
  %xor98 = xor i32 %or.i2839, %or.i2845
  %and99 = and i32 %add85, %xor98
  %xor100 = xor i32 %and99, %or.i2845
  %add101 = add i32 %or.i2851, 1518500249
  %add102 = add i32 %add101, %xor100
  %add105 = add i32 %add102, %or.i2836
  %shl.i2831 = shl i32 %add85, 30
  %shr.i2832 = lshr i32 %add85, 2
  %or.i2833 = or i32 %shl.i2831, %shr.i2832
  %shl.i2828 = shl i32 %add105, 5
  %shr.i2829 = lshr i32 %add105, 27
  %or.i2830 = or i32 %shl.i2828, %shr.i2829
  %xor108 = xor i32 %or.i2833, %or.i2839
  %and109 = and i32 %add95, %xor108
  %xor110 = xor i32 %and109, %or.i2839
  %add111 = add i32 %or.i2845, 1518500249
  %add112 = add i32 %add111, %xor110
  %add115 = add i32 %add112, %or.i2830
  %shl.i2825 = shl i32 %add95, 30
  %shr.i2826 = lshr i32 %add95, 2
  %or.i2827 = or i32 %shl.i2825, %shr.i2826
  %shl.i2822 = shl i32 %add115, 5
  %shr.i2823 = lshr i32 %add115, 27
  %or.i2824 = or i32 %shl.i2822, %shr.i2823
  %xor118 = xor i32 %or.i2827, %or.i2833
  %and119 = and i32 %add105, %xor118
  %xor120 = xor i32 %and119, %or.i2833
  %add121 = add i32 %or.i2839, 1518500249
  %add122 = add i32 %add121, %xor120
  %add125 = add i32 %add122, %or.i2824
  %shl.i2819 = shl i32 %add105, 30
  %shr.i2820 = lshr i32 %add105, 2
  %or.i2821 = or i32 %shl.i2819, %shr.i2820
  %shl.i2816 = shl i32 %add125, 5
  %shr.i2817 = lshr i32 %add125, 27
  %or.i2818 = or i32 %shl.i2816, %shr.i2817
  %xor128 = xor i32 %or.i2821, %or.i2827
  %and129 = and i32 %add115, %xor128
  %xor130 = xor i32 %and129, %or.i2827
  %add131 = add i32 %or.i2833, 1518500249
  %add132 = add i32 %add131, %xor130
  %add135 = add i32 %add132, %or.i2818
  %shl.i2813 = shl i32 %add115, 30
  %shr.i2814 = lshr i32 %add115, 2
  %or.i2815 = or i32 %shl.i2813, %shr.i2814
  %shl.i2810 = shl i32 %add135, 5
  %shr.i2811 = lshr i32 %add135, 27
  %or.i2812 = or i32 %shl.i2810, %shr.i2811
  %xor138 = xor i32 %or.i2815, %or.i2821
  %and139 = and i32 %add125, %xor138
  %xor140 = xor i32 %and139, %or.i2821
  %add141 = add i32 %or.i2827, 1518500249
  %add142 = add i32 %add141, %xor140
  %add145 = add i32 %add142, %or.i2812
  %shl.i2807 = shl i32 %add125, 30
  %shr.i2808 = lshr i32 %add125, 2
  %or.i2809 = or i32 %shl.i2807, %shr.i2808
  %shl.i2804 = shl i32 %add145, 5
  %shr.i2805 = lshr i32 %add145, 27
  %or.i2806 = or i32 %shl.i2804, %shr.i2805
  %xor148 = xor i32 %or.i2809, %or.i2815
  %and149 = and i32 %add135, %xor148
  %xor150 = xor i32 %and149, %or.i2815
  %add151 = add i32 %or.i2821, 1518500249
  %add152 = add i32 %add151, %xor150
  %add155 = add i32 %add152, %or.i2806
  %shl.i2801 = shl i32 %add135, 30
  %shr.i2802 = lshr i32 %add135, 2
  %or.i2803 = or i32 %shl.i2801, %shr.i2802
  %shl.i2798 = shl i32 %add155, 5
  %shr.i2799 = lshr i32 %add155, 27
  %or.i2800 = or i32 %shl.i2798, %shr.i2799
  %xor158 = xor i32 %or.i2803, %or.i2809
  %and159 = and i32 %add145, %xor158
  %xor160 = xor i32 %and159, %or.i2809
  %add161 = add i32 %or.i2815, 1518500249
  %add162 = add i32 %add161, %xor160
  %add165 = add i32 %add162, %or.i2800
  %shl.i2795 = shl i32 %add145, 30
  %shr.i2796 = lshr i32 %add145, 2
  %or.i2797 = or i32 %shl.i2795, %shr.i2796
  %shl.i2792 = shl i32 %add165, 5
  %shr.i2793 = lshr i32 %add165, 27
  %or.i2794 = or i32 %shl.i2792, %shr.i2793
  %xor168 = xor i32 %or.i2797, %or.i2803
  %and169 = and i32 %add155, %xor168
  %xor170 = xor i32 %and169, %or.i2803
  %add171 = add i32 %or.i2809, 1518500921
  %add174 = add i32 %add171, %xor170
  %add175 = add i32 %add174, %or.i2794
  %shl.i2789 = shl i32 %add155, 30
  %shr.i2790 = lshr i32 %add155, 2
  %or.i2791 = or i32 %shl.i2789, %shr.i2790
  %shl.i2786 = shl i32 %add175, 5
  %shr.i2787 = lshr i32 %add175, 27
  %or.i2788 = or i32 %shl.i2786, %shr.i2787
  %xor178 = xor i32 %or.i2791, %or.i2797
  %and179 = and i32 %add165, %xor178
  %xor180 = xor i32 %and179, %or.i2797
  %xor189 = xor i32 %2, %0
  %shl.i2783 = shl i32 %xor189, 1
  %shr.i2784 = lshr i32 %xor189, 31
  %or.i2785 = or i32 %shl.i2783, %shr.i2784
  %add181 = add i32 %or.i2785, 1518500249
  %add182 = add i32 %add181, %or.i2803
  %add192 = add i32 %add182, %xor180
  %add193 = add i32 %add192, %or.i2788
  %shl.i2780 = shl i32 %add165, 30
  %shr.i2781 = lshr i32 %add165, 2
  %or.i2782 = or i32 %shl.i2780, %shr.i2781
  %shl.i2777 = shl i32 %add193, 5
  %shr.i2778 = lshr i32 %add193, 27
  %or.i2779 = or i32 %shl.i2777, %shr.i2778
  %xor196 = xor i32 %or.i2782, %or.i2791
  %and197 = and i32 %add175, %xor196
  %xor198 = xor i32 %and197, %or.i2791
  %xor207 = xor i32 %3, %1
  %shl.i2774 = shl i32 %xor207, 1
  %shr.i2775 = lshr i32 %xor207, 31
  %or.i2776 = or i32 %shl.i2774, %shr.i2775
  %add199 = add i32 %or.i2776, 1518500249
  %add200 = add i32 %add199, %or.i2797
  %add210 = add i32 %add200, %xor198
  %add211 = add i32 %add210, %or.i2779
  %shl.i2771 = shl i32 %add175, 30
  %shr.i2772 = lshr i32 %add175, 2
  %or.i2773 = or i32 %shl.i2771, %shr.i2772
  %shl.i2768 = shl i32 %add211, 5
  %shr.i2769 = lshr i32 %add211, 27
  %or.i2770 = or i32 %shl.i2768, %shr.i2769
  %xor214 = xor i32 %or.i2773, %or.i2782
  %and215 = and i32 %add193, %xor214
  %xor216 = xor i32 %and215, %or.i2782
  %xor223 = xor i32 %2, 672
  %xor225 = xor i32 %xor223, %4
  %shl.i2765 = shl i32 %xor225, 1
  %shr.i2766 = lshr i32 %xor225, 31
  %or.i2767 = or i32 %shl.i2765, %shr.i2766
  %add217 = add i32 %or.i2767, 1518500249
  %add218 = add i32 %add217, %or.i2791
  %add228 = add i32 %add218, %xor216
  %add229 = add i32 %add228, %or.i2770
  %shl.i2762 = shl i32 %add193, 30
  %shr.i2763 = lshr i32 %add193, 2
  %or.i2764 = or i32 %shl.i2762, %shr.i2763
  %shl.i2759 = shl i32 %add229, 5
  %shr.i2760 = lshr i32 %add229, 27
  %or.i2761 = or i32 %shl.i2759, %shr.i2760
  %xor232 = xor i32 %or.i2764, %or.i2773
  %and233 = and i32 %add211, %xor232
  %xor234 = xor i32 %and233, %or.i2773
  %xor241 = xor i32 %3, -2147483648
  %xor243 = xor i32 %xor241, %or.i2785
  %shl.i2756 = shl i32 %xor243, 1
  %shr.i2757 = lshr i32 %xor243, 31
  %or.i2758 = or i32 %shl.i2756, %shr.i2757
  %add235 = add i32 %or.i2758, 1518500249
  %add236 = add i32 %add235, %or.i2782
  %add246 = add i32 %add236, %xor234
  %add247 = add i32 %add246, %or.i2761
  %shl.i2753 = shl i32 %add211, 30
  %shr.i2754 = lshr i32 %add211, 2
  %or.i2755 = or i32 %shl.i2753, %shr.i2754
  %shl.i2750 = shl i32 %add247, 5
  %shr.i2751 = lshr i32 %add247, 27
  %or.i2752 = or i32 %shl.i2750, %shr.i2751
  %xor250 = xor i32 %or.i2755, %or.i2764
  %xor251 = xor i32 %xor250, %add229
  %xor260 = xor i32 %or.i2776, %4
  %shl.i2747 = shl i32 %xor260, 1
  %shr.i2748 = lshr i32 %xor260, 31
  %or.i2749 = or i32 %shl.i2747, %shr.i2748
  %add252 = add i32 %or.i2749, 1859775393
  %add253 = add i32 %add252, %or.i2773
  %add263 = add i32 %add253, %xor251
  %add264 = add i32 %add263, %or.i2752
  %shl.i2744 = shl i32 %add229, 30
  %shr.i2745 = lshr i32 %add229, 2
  %or.i2746 = or i32 %shl.i2744, %shr.i2745
  %shl.i2741 = shl i32 %add264, 5
  %shr.i2742 = lshr i32 %add264, 27
  %or.i2743 = or i32 %shl.i2741, %shr.i2742
  %xor267 = xor i32 %or.i2746, %or.i2755
  %xor268 = xor i32 %xor267, %add247
  %10 = shl i32 %or.i2767, 1
  %11 = lshr i32 %xor225, 30
  %xor277 = and i32 %11, 1
  %shl.i2738 = or i32 %10, %xor277
  %or.i2740 = xor i32 %shl.i2738, 1
  %add269 = add i32 %or.i2740, 1859775393
  %add270 = add i32 %add269, %or.i2764
  %add280 = add i32 %add270, %xor268
  %add281 = add i32 %add280, %or.i2743
  %shl.i2735 = shl i32 %add247, 30
  %shr.i2736 = lshr i32 %add247, 2
  %or.i2737 = or i32 %shl.i2735, %shr.i2736
  %shl.i2732 = shl i32 %add281, 5
  %shr.i2733 = lshr i32 %add281, 27
  %or.i2734 = or i32 %shl.i2732, %shr.i2733
  %xor284 = xor i32 %or.i2737, %or.i2746
  %xor285 = xor i32 %xor284, %add264
  %shl.i2729 = shl i32 %or.i2758, 1
  %12 = lshr i32 %xor243, 30
  %shr.i2730 = and i32 %12, 1
  %or.i2731 = or i32 %shl.i2729, %shr.i2730
  %add286 = add i32 %or.i2731, 1859775393
  %add287 = add i32 %add286, %or.i2755
  %add297 = add i32 %add287, %xor285
  %add298 = add i32 %add297, %or.i2734
  %shl.i2726 = shl i32 %add264, 30
  %shr.i2727 = lshr i32 %add264, 2
  %or.i2728 = or i32 %shl.i2726, %shr.i2727
  %shl.i2723 = shl i32 %add298, 5
  %shr.i2724 = lshr i32 %add298, 27
  %or.i2725 = or i32 %shl.i2723, %shr.i2724
  %xor301 = xor i32 %or.i2728, %or.i2737
  %xor302 = xor i32 %xor301, %add281
  %xor307 = shl i32 %or.i2749, 1
  %13 = lshr i32 %xor260, 30
  %shr.i2721 = and i32 %13, 1
  %shl.i2720 = or i32 %xor307, %shr.i2721
  %or.i2722 = xor i32 %shl.i2720, 1344
  %add303 = add i32 %or.i2722, 1859775393
  %add304 = add i32 %add303, %or.i2746
  %add314 = add i32 %add304, %xor302
  %add315 = add i32 %add314, %or.i2725
  %shl.i2717 = shl i32 %add281, 30
  %shr.i2718 = lshr i32 %add281, 2
  %or.i2719 = or i32 %shl.i2717, %shr.i2718
  %shl.i2714 = shl i32 %add315, 5
  %shr.i2715 = lshr i32 %add315, 27
  %or.i2716 = or i32 %shl.i2714, %shr.i2715
  %xor318 = xor i32 %or.i2719, %or.i2728
  %xor319 = xor i32 %xor318, %add298
  %xor324 = xor i32 %or.i2740, %or.i2785
  %shl.i2711 = shl i32 %xor324, 1
  %shr.i2712 = lshr i32 %xor324, 31
  %or.i2713 = or i32 %shl.i2711, %shr.i2712
  %add320 = add i32 %or.i2713, 1859775393
  %add321 = add i32 %add320, %or.i2737
  %add331 = add i32 %add321, %xor319
  %add332 = add i32 %add331, %or.i2716
  %shl.i2708 = shl i32 %add298, 30
  %shr.i2709 = lshr i32 %add298, 2
  %or.i2710 = or i32 %shl.i2708, %shr.i2709
  %shl.i2705 = shl i32 %add332, 5
  %shr.i2706 = lshr i32 %add332, 27
  %or.i2707 = or i32 %shl.i2705, %shr.i2706
  %xor335 = xor i32 %or.i2710, %or.i2719
  %xor336 = xor i32 %xor335, %add315
  %xor341 = xor i32 %or.i2731, %or.i2776
  %shl.i2702 = shl i32 %xor341, 1
  %shr.i2703 = lshr i32 %xor341, 31
  %or.i2704 = or i32 %shl.i2702, %shr.i2703
  %add337 = add i32 %or.i2704, 1859775393
  %add338 = add i32 %add337, %or.i2728
  %add348 = add i32 %add338, %xor336
  %add349 = add i32 %add348, %or.i2707
  %shl.i2699 = shl i32 %add315, 30
  %shr.i2700 = lshr i32 %add315, 2
  %or.i2701 = or i32 %shl.i2699, %shr.i2700
  %shl.i2696 = shl i32 %add349, 5
  %shr.i2697 = lshr i32 %add349, 27
  %or.i2698 = or i32 %shl.i2696, %shr.i2697
  %xor352 = xor i32 %or.i2701, %or.i2710
  %xor353 = xor i32 %xor352, %add332
  %xor358 = xor i32 %or.i2722, %or.i2767
  %shl.i2693 = shl i32 %xor358, 1
  %shr.i2694 = lshr i32 %xor358, 31
  %or.i2695 = or i32 %shl.i2693, %shr.i2694
  %add354 = add i32 %or.i2695, 1859775393
  %add355 = add i32 %add354, %or.i2719
  %add365 = add i32 %add355, %xor353
  %add366 = add i32 %add365, %or.i2698
  %shl.i2690 = shl i32 %add332, 30
  %shr.i2691 = lshr i32 %add332, 2
  %or.i2692 = or i32 %shl.i2690, %shr.i2691
  %shl.i2687 = shl i32 %add366, 5
  %shr.i2688 = lshr i32 %add366, 27
  %or.i2689 = or i32 %shl.i2687, %shr.i2688
  %xor369 = xor i32 %or.i2692, %or.i2701
  %xor370 = xor i32 %xor369, %add349
  %xor375 = xor i32 %or.i2713, %or.i2758
  %shl.i2684 = shl i32 %xor375, 1
  %shr.i2685 = lshr i32 %xor375, 31
  %or.i2686 = or i32 %shl.i2684, %shr.i2685
  %add371 = add i32 %or.i2686, 1859775393
  %add372 = add i32 %add371, %or.i2710
  %add382 = add i32 %add372, %xor370
  %add383 = add i32 %add382, %or.i2689
  %shl.i2681 = shl i32 %add349, 30
  %shr.i2682 = lshr i32 %add349, 2
  %or.i2683 = or i32 %shl.i2681, %shr.i2682
  %shl.i2678 = shl i32 %add383, 5
  %shr.i2679 = lshr i32 %add383, 27
  %or.i2680 = or i32 %shl.i2678, %shr.i2679
  %xor386 = xor i32 %or.i2683, %or.i2692
  %xor387 = xor i32 %xor386, %add366
  %xor392 = xor i32 %or.i2704, %or.i2749
  %shl.i2675 = shl i32 %xor392, 1
  %shr.i2676 = lshr i32 %xor392, 31
  %or.i2677 = or i32 %shl.i2675, %shr.i2676
  %add388 = add i32 %or.i2677, 1859775393
  %add389 = add i32 %add388, %or.i2701
  %add399 = add i32 %add389, %xor387
  %add400 = add i32 %add399, %or.i2680
  %shl.i2672 = shl i32 %add366, 30
  %shr.i2673 = lshr i32 %add366, 2
  %or.i2674 = or i32 %shl.i2672, %shr.i2673
  %shl.i2669 = shl i32 %add400, 5
  %shr.i2670 = lshr i32 %add400, 27
  %or.i2671 = or i32 %shl.i2669, %shr.i2670
  %xor403 = xor i32 %or.i2674, %or.i2683
  %xor404 = xor i32 %xor403, %add383
  %xor409 = xor i32 %or.i2695, %or.i2740
  %xor411 = shl i32 %xor409, 1
  %shr.i2667 = lshr i32 %xor409, 31
  %shl.i2666 = or i32 %xor411, %shr.i2667
  %or.i2668 = xor i32 %shl.i2666, 1344
  %add405 = add i32 %or.i2668, 1859775393
  %add406 = add i32 %add405, %or.i2692
  %add416 = add i32 %add406, %xor404
  %add417 = add i32 %add416, %or.i2671
  %shl.i2663 = shl i32 %add383, 30
  %shr.i2664 = lshr i32 %add383, 2
  %or.i2665 = or i32 %shl.i2663, %shr.i2664
  %shl.i2660 = shl i32 %add417, 5
  %shr.i2661 = lshr i32 %add417, 27
  %or.i2662 = or i32 %shl.i2660, %shr.i2661
  %xor420 = xor i32 %or.i2665, %or.i2674
  %xor421 = xor i32 %xor420, %add400
  %xor426 = xor i32 %or.i2731, %or.i2785
  %xor428 = xor i32 %xor426, %or.i2686
  %shl.i2657 = shl i32 %xor428, 1
  %shr.i2658 = lshr i32 %xor428, 31
  %or.i2659 = or i32 %shl.i2657, %shr.i2658
  %add422 = add i32 %or.i2659, 1859775393
  %add423 = add i32 %add422, %or.i2683
  %add433 = add i32 %add423, %xor421
  %add434 = add i32 %add433, %or.i2662
  %shl.i2654 = shl i32 %add400, 30
  %shr.i2655 = lshr i32 %add400, 2
  %or.i2656 = or i32 %shl.i2654, %shr.i2655
  %shl.i2651 = shl i32 %add434, 5
  %shr.i2652 = lshr i32 %add434, 27
  %or.i2653 = or i32 %shl.i2651, %shr.i2652
  %xor437 = xor i32 %or.i2656, %or.i2665
  %xor438 = xor i32 %xor437, %add417
  %xor443 = xor i32 %or.i2722, %or.i2776
  %xor445 = xor i32 %xor443, %or.i2677
  %xor447 = shl i32 %xor445, 1
  %shr.i2649 = lshr i32 %xor445, 31
  %shl.i2648 = or i32 %xor447, %shr.i2649
  %or.i2650 = xor i32 %shl.i2648, 1344
  %add439 = add i32 %or.i2650, 1859775393
  %add440 = add i32 %add439, %or.i2674
  %add450 = add i32 %add440, %xor438
  %add451 = add i32 %add450, %or.i2653
  %shl.i2645 = shl i32 %add417, 30
  %shr.i2646 = lshr i32 %add417, 2
  %or.i2647 = or i32 %shl.i2645, %shr.i2646
  %shl.i2642 = shl i32 %add451, 5
  %shr.i2643 = lshr i32 %add451, 27
  %or.i2644 = or i32 %shl.i2642, %shr.i2643
  %xor454 = xor i32 %or.i2647, %or.i2656
  %xor455 = xor i32 %xor454, %add434
  %xor460 = xor i32 %or.i2767, %or.i2785
  %xor462 = xor i32 %xor460, %or.i2713
  %xor464 = xor i32 %xor462, %or.i2668
  %shl.i2639 = shl i32 %xor464, 1
  %shr.i2640 = lshr i32 %xor464, 31
  %or.i2641 = or i32 %shl.i2639, %shr.i2640
  %add456 = add i32 %or.i2641, 1859775393
  %add457 = add i32 %add456, %or.i2665
  %add467 = add i32 %add457, %xor455
  %add468 = add i32 %add467, %or.i2644
  %shl.i2636 = shl i32 %add434, 30
  %shr.i2637 = lshr i32 %add434, 2
  %or.i2638 = or i32 %shl.i2636, %shr.i2637
  %shl.i2633 = shl i32 %add468, 5
  %shr.i2634 = lshr i32 %add468, 27
  %or.i2635 = or i32 %shl.i2633, %shr.i2634
  %xor471 = xor i32 %or.i2638, %or.i2647
  %xor472 = xor i32 %xor471, %add451
  %xor477 = xor i32 %or.i2758, %or.i2776
  %xor479 = xor i32 %xor477, %or.i2704
  %xor481 = xor i32 %xor479, %or.i2659
  %shl.i2630 = shl i32 %xor481, 1
  %shr.i2631 = lshr i32 %xor481, 31
  %or.i2632 = or i32 %shl.i2630, %shr.i2631
  %add473 = add i32 %or.i2632, 1859775393
  %add474 = add i32 %add473, %or.i2656
  %add484 = add i32 %add474, %xor472
  %add485 = add i32 %add484, %or.i2635
  %shl.i2627 = shl i32 %add451, 30
  %shr.i2628 = lshr i32 %add451, 2
  %or.i2629 = or i32 %shl.i2627, %shr.i2628
  %shl.i2624 = shl i32 %add485, 5
  %shr.i2625 = lshr i32 %add485, 27
  %or.i2626 = or i32 %shl.i2624, %shr.i2625
  %xor488 = xor i32 %or.i2629, %or.i2638
  %xor489 = xor i32 %xor488, %add468
  %xor494 = xor i32 %or.i2749, %or.i2767
  %xor496 = xor i32 %xor494, %or.i2695
  %xor498 = xor i32 %xor496, %or.i2650
  %shl.i2621 = shl i32 %xor498, 1
  %shr.i2622 = lshr i32 %xor498, 31
  %or.i2623 = or i32 %shl.i2621, %shr.i2622
  %add490 = add i32 %or.i2623, 1859775393
  %add491 = add i32 %add490, %or.i2647
  %add501 = add i32 %add491, %xor489
  %add502 = add i32 %add501, %or.i2626
  %shl.i2618 = shl i32 %add468, 30
  %shr.i2619 = lshr i32 %add468, 2
  %or.i2620 = or i32 %shl.i2618, %shr.i2619
  %shl.i2615 = shl i32 %add502, 5
  %shr.i2616 = lshr i32 %add502, 27
  %or.i2617 = or i32 %shl.i2615, %shr.i2616
  %xor505 = xor i32 %or.i2620, %or.i2629
  %xor506 = xor i32 %xor505, %add485
  %xor511 = xor i32 %or.i2740, %or.i2758
  %xor513 = xor i32 %xor511, %or.i2686
  %xor515 = xor i32 %xor513, %or.i2641
  %shl.i2612 = shl i32 %xor515, 1
  %shr.i2613 = lshr i32 %xor515, 31
  %or.i2614 = or i32 %shl.i2612, %shr.i2613
  %add507 = add i32 %or.i2614, 1859775393
  %add508 = add i32 %add507, %or.i2638
  %add518 = add i32 %add508, %xor506
  %add519 = add i32 %add518, %or.i2617
  %shl.i2609 = shl i32 %add485, 30
  %shr.i2610 = lshr i32 %add485, 2
  %or.i2611 = or i32 %shl.i2609, %shr.i2610
  %shl.i2606 = shl i32 %add519, 5
  %shr.i2607 = lshr i32 %add519, 27
  %or.i2608 = or i32 %shl.i2606, %shr.i2607
  %xor522 = xor i32 %or.i2611, %or.i2620
  %xor523 = xor i32 %xor522, %add502
  %xor528 = xor i32 %or.i2731, %or.i2749
  %xor530 = xor i32 %xor528, %or.i2677
  %xor532 = xor i32 %xor530, %or.i2632
  %shl.i2603 = shl i32 %xor532, 1
  %shr.i2604 = lshr i32 %xor532, 31
  %or.i2605 = or i32 %shl.i2603, %shr.i2604
  %add524 = add i32 %or.i2605, 1859775393
  %add525 = add i32 %add524, %or.i2629
  %add535 = add i32 %add525, %xor523
  %add536 = add i32 %add535, %or.i2608
  %shl.i2600 = shl i32 %add502, 30
  %shr.i2601 = lshr i32 %add502, 2
  %or.i2602 = or i32 %shl.i2600, %shr.i2601
  %shl.i2597 = shl i32 %add536, 5
  %shr.i2598 = lshr i32 %add536, 27
  %or.i2599 = or i32 %shl.i2597, %shr.i2598
  %xor539 = xor i32 %or.i2602, %or.i2611
  %xor540 = xor i32 %xor539, %add519
  %xor545 = xor i32 %or.i2722, %or.i2740
  %xor547 = xor i32 %xor545, %or.i2668
  %xor549 = xor i32 %xor547, %or.i2623
  %shl.i2594 = shl i32 %xor549, 1
  %shr.i2595 = lshr i32 %xor549, 31
  %or.i2596 = or i32 %shl.i2594, %shr.i2595
  %add541 = add i32 %or.i2596, 1859775393
  %add542 = add i32 %add541, %or.i2620
  %add552 = add i32 %add542, %xor540
  %add553 = add i32 %add552, %or.i2599
  %shl.i2591 = shl i32 %add519, 30
  %shr.i2592 = lshr i32 %add519, 2
  %or.i2593 = or i32 %shl.i2591, %shr.i2592
  %shl.i2588 = shl i32 %add553, 5
  %shr.i2589 = lshr i32 %add553, 27
  %or.i2590 = or i32 %shl.i2588, %shr.i2589
  %xor556 = xor i32 %or.i2593, %or.i2602
  %xor557 = xor i32 %xor556, %add536
  %xor562 = xor i32 %or.i2713, %or.i2731
  %xor564 = xor i32 %xor562, %or.i2659
  %xor566 = xor i32 %xor564, %or.i2614
  %shl.i2585 = shl i32 %xor566, 1
  %shr.i2586 = lshr i32 %xor566, 31
  %or.i2587 = or i32 %shl.i2585, %shr.i2586
  %add558 = add i32 %or.i2587, 1859775393
  %add559 = add i32 %add558, %or.i2611
  %add569 = add i32 %add559, %xor557
  %add570 = add i32 %add569, %or.i2590
  %shl.i2582 = shl i32 %add536, 30
  %shr.i2583 = lshr i32 %add536, 2
  %or.i2584 = or i32 %shl.i2582, %shr.i2583
  %shl.i2579 = shl i32 %add570, 5
  %shr.i2580 = lshr i32 %add570, 27
  %or.i2581 = or i32 %shl.i2579, %shr.i2580
  %xor573 = xor i32 %or.i2584, %or.i2593
  %xor574 = xor i32 %xor573, %add553
  %xor579 = xor i32 %or.i2704, %or.i2722
  %xor581 = xor i32 %xor579, %or.i2650
  %xor583 = xor i32 %xor581, %or.i2605
  %shl.i2576 = shl i32 %xor583, 1
  %shr.i2577 = lshr i32 %xor583, 31
  %or.i2578 = or i32 %shl.i2576, %shr.i2577
  %add575 = add i32 %or.i2578, 1859775393
  %add576 = add i32 %add575, %or.i2602
  %add586 = add i32 %add576, %xor574
  %add587 = add i32 %add586, %or.i2581
  %shl.i2573 = shl i32 %add553, 30
  %shr.i2574 = lshr i32 %add553, 2
  %or.i2575 = or i32 %shl.i2573, %shr.i2574
  %shl.i2570 = shl i32 %add587, 5
  %shr.i2571 = lshr i32 %add587, 27
  %or.i2572 = or i32 %shl.i2570, %shr.i2571
  %and590 = and i32 %add570, %or.i2575
  %or = or i32 %add570, %or.i2575
  %and591 = and i32 %or, %or.i2584
  %or592 = or i32 %and591, %and590
  %xor597 = xor i32 %or.i2695, %or.i2713
  %xor599 = xor i32 %xor597, %or.i2641
  %xor601 = xor i32 %xor599, %or.i2596
  %shl.i2567 = shl i32 %xor601, 1
  %shr.i2568 = lshr i32 %xor601, 31
  %or.i2569 = or i32 %shl.i2567, %shr.i2568
  %add593 = add i32 %or.i2569, -1894007588
  %add594 = add i32 %add593, %or.i2593
  %add604 = add i32 %add594, %or592
  %add605 = add i32 %add604, %or.i2572
  %shl.i2564 = shl i32 %add570, 30
  %shr.i2565 = lshr i32 %add570, 2
  %or.i2566 = or i32 %shl.i2564, %shr.i2565
  %shl.i2561 = shl i32 %add605, 5
  %shr.i2562 = lshr i32 %add605, 27
  %or.i2563 = or i32 %shl.i2561, %shr.i2562
  %and608 = and i32 %add587, %or.i2566
  %or609 = or i32 %add587, %or.i2566
  %and610 = and i32 %or609, %or.i2575
  %or611 = or i32 %and610, %and608
  %xor616 = xor i32 %or.i2686, %or.i2704
  %xor618 = xor i32 %xor616, %or.i2632
  %xor620 = xor i32 %xor618, %or.i2587
  %shl.i2558 = shl i32 %xor620, 1
  %shr.i2559 = lshr i32 %xor620, 31
  %or.i2560 = or i32 %shl.i2558, %shr.i2559
  %add612 = add i32 %or.i2560, -1894007588
  %add613 = add i32 %add612, %or.i2584
  %add623 = add i32 %add613, %or611
  %add624 = add i32 %add623, %or.i2563
  %shl.i2555 = shl i32 %add587, 30
  %shr.i2556 = lshr i32 %add587, 2
  %or.i2557 = or i32 %shl.i2555, %shr.i2556
  %shl.i2552 = shl i32 %add624, 5
  %shr.i2553 = lshr i32 %add624, 27
  %or.i2554 = or i32 %shl.i2552, %shr.i2553
  %and627 = and i32 %add605, %or.i2557
  %or628 = or i32 %add605, %or.i2557
  %and629 = and i32 %or628, %or.i2566
  %or630 = or i32 %and629, %and627
  %xor635 = xor i32 %or.i2677, %or.i2695
  %xor637 = xor i32 %xor635, %or.i2623
  %xor639 = xor i32 %xor637, %or.i2578
  %shl.i2549 = shl i32 %xor639, 1
  %shr.i2550 = lshr i32 %xor639, 31
  %or.i2551 = or i32 %shl.i2549, %shr.i2550
  %add631 = add i32 %or.i2551, -1894007588
  %add632 = add i32 %add631, %or.i2575
  %add642 = add i32 %add632, %or630
  %add643 = add i32 %add642, %or.i2554
  %shl.i2546 = shl i32 %add605, 30
  %shr.i2547 = lshr i32 %add605, 2
  %or.i2548 = or i32 %shl.i2546, %shr.i2547
  %shl.i2543 = shl i32 %add643, 5
  %shr.i2544 = lshr i32 %add643, 27
  %or.i2545 = or i32 %shl.i2543, %shr.i2544
  %and646 = and i32 %add624, %or.i2548
  %or647 = or i32 %add624, %or.i2548
  %and648 = and i32 %or647, %or.i2557
  %or649 = or i32 %and648, %and646
  %xor654 = xor i32 %or.i2668, %or.i2686
  %xor656 = xor i32 %xor654, %or.i2614
  %xor658 = xor i32 %xor656, %or.i2569
  %shl.i2540 = shl i32 %xor658, 1
  %shr.i2541 = lshr i32 %xor658, 31
  %or.i2542 = or i32 %shl.i2540, %shr.i2541
  %add650 = add i32 %or.i2542, -1894007588
  %add651 = add i32 %add650, %or.i2566
  %add661 = add i32 %add651, %or649
  %add662 = add i32 %add661, %or.i2545
  %shl.i2537 = shl i32 %add624, 30
  %shr.i2538 = lshr i32 %add624, 2
  %or.i2539 = or i32 %shl.i2537, %shr.i2538
  %shl.i2534 = shl i32 %add662, 5
  %shr.i2535 = lshr i32 %add662, 27
  %or.i2536 = or i32 %shl.i2534, %shr.i2535
  %and665 = and i32 %add643, %or.i2539
  %or666 = or i32 %add643, %or.i2539
  %and667 = and i32 %or666, %or.i2548
  %or668 = or i32 %and667, %and665
  %xor673 = xor i32 %or.i2659, %or.i2677
  %xor675 = xor i32 %xor673, %or.i2605
  %xor677 = xor i32 %xor675, %or.i2560
  %shl.i2531 = shl i32 %xor677, 1
  %shr.i2532 = lshr i32 %xor677, 31
  %or.i2533 = or i32 %shl.i2531, %shr.i2532
  %add669 = add i32 %or.i2533, -1894007588
  %add670 = add i32 %add669, %or.i2557
  %add680 = add i32 %add670, %or668
  %add681 = add i32 %add680, %or.i2536
  %shl.i2528 = shl i32 %add643, 30
  %shr.i2529 = lshr i32 %add643, 2
  %or.i2530 = or i32 %shl.i2528, %shr.i2529
  %shl.i2525 = shl i32 %add681, 5
  %shr.i2526 = lshr i32 %add681, 27
  %or.i2527 = or i32 %shl.i2525, %shr.i2526
  %and684 = and i32 %add662, %or.i2530
  %or685 = or i32 %add662, %or.i2530
  %and686 = and i32 %or685, %or.i2539
  %or687 = or i32 %and686, %and684
  %xor692 = xor i32 %shl.i2648, %shl.i2666
  %xor694 = xor i32 %xor692, %or.i2596
  %xor696 = xor i32 %xor694, %or.i2551
  %shl.i2522 = shl i32 %xor696, 1
  %shr.i2523 = lshr i32 %xor696, 31
  %or.i2524 = or i32 %shl.i2522, %shr.i2523
  %add688 = add i32 %or.i2524, -1894007588
  %add689 = add i32 %add688, %or.i2548
  %add699 = add i32 %add689, %or687
  %add700 = add i32 %add699, %or.i2527
  %shl.i2519 = shl i32 %add662, 30
  %shr.i2520 = lshr i32 %add662, 2
  %or.i2521 = or i32 %shl.i2519, %shr.i2520
  %shl.i2516 = shl i32 %add700, 5
  %shr.i2517 = lshr i32 %add700, 27
  %or.i2518 = or i32 %shl.i2516, %shr.i2517
  %and703 = and i32 %add681, %or.i2521
  %or704 = or i32 %add681, %or.i2521
  %and705 = and i32 %or704, %or.i2530
  %or706 = or i32 %and705, %and703
  %xor711 = xor i32 %or.i2641, %or.i2659
  %xor713 = xor i32 %xor711, %or.i2587
  %xor715 = xor i32 %xor713, %or.i2542
  %shl.i2513 = shl i32 %xor715, 1
  %shr.i2514 = lshr i32 %xor715, 31
  %or.i2515 = or i32 %shl.i2513, %shr.i2514
  %add707 = add i32 %or.i2515, -1894007588
  %add708 = add i32 %add707, %or.i2539
  %add718 = add i32 %add708, %or706
  %add719 = add i32 %add718, %or.i2518
  %shl.i2510 = shl i32 %add681, 30
  %shr.i2511 = lshr i32 %add681, 2
  %or.i2512 = or i32 %shl.i2510, %shr.i2511
  %shl.i2507 = shl i32 %add719, 5
  %shr.i2508 = lshr i32 %add719, 27
  %or.i2509 = or i32 %shl.i2507, %shr.i2508
  %and722 = and i32 %add700, %or.i2512
  %or723 = or i32 %add700, %or.i2512
  %and724 = and i32 %or723, %or.i2521
  %or725 = or i32 %and724, %and722
  %xor730 = xor i32 %or.i2632, %or.i2650
  %xor732 = xor i32 %xor730, %or.i2578
  %xor734 = xor i32 %xor732, %or.i2533
  %shl.i2504 = shl i32 %xor734, 1
  %shr.i2505 = lshr i32 %xor734, 31
  %or.i2506 = or i32 %shl.i2504, %shr.i2505
  %add726 = add i32 %or.i2506, -1894007588
  %add727 = add i32 %add726, %or.i2530
  %add737 = add i32 %add727, %or725
  %add738 = add i32 %add737, %or.i2509
  %shl.i2501 = shl i32 %add700, 30
  %shr.i2502 = lshr i32 %add700, 2
  %or.i2503 = or i32 %shl.i2501, %shr.i2502
  %shl.i2498 = shl i32 %add738, 5
  %shr.i2499 = lshr i32 %add738, 27
  %or.i2500 = or i32 %shl.i2498, %shr.i2499
  %and741 = and i32 %add719, %or.i2503
  %or742 = or i32 %add719, %or.i2503
  %and743 = and i32 %or742, %or.i2512
  %or744 = or i32 %and743, %and741
  %xor749 = xor i32 %or.i2623, %or.i2641
  %xor751 = xor i32 %xor749, %or.i2569
  %xor753 = xor i32 %xor751, %or.i2524
  %shl.i2495 = shl i32 %xor753, 1
  %shr.i2496 = lshr i32 %xor753, 31
  %or.i2497 = or i32 %shl.i2495, %shr.i2496
  %add745 = add i32 %or.i2497, -1894007588
  %add746 = add i32 %add745, %or.i2521
  %add756 = add i32 %add746, %or744
  %add757 = add i32 %add756, %or.i2500
  %shl.i2492 = shl i32 %add719, 30
  %shr.i2493 = lshr i32 %add719, 2
  %or.i2494 = or i32 %shl.i2492, %shr.i2493
  %shl.i2489 = shl i32 %add757, 5
  %shr.i2490 = lshr i32 %add757, 27
  %or.i2491 = or i32 %shl.i2489, %shr.i2490
  %and760 = and i32 %add738, %or.i2494
  %or761 = or i32 %add738, %or.i2494
  %and762 = and i32 %or761, %or.i2503
  %or763 = or i32 %and762, %and760
  %xor768 = xor i32 %or.i2614, %or.i2632
  %xor770 = xor i32 %xor768, %or.i2560
  %xor772 = xor i32 %xor770, %or.i2515
  %shl.i2486 = shl i32 %xor772, 1
  %shr.i2487 = lshr i32 %xor772, 31
  %or.i2488 = or i32 %shl.i2486, %shr.i2487
  %add764 = add i32 %or.i2488, -1894007588
  %add765 = add i32 %add764, %or.i2512
  %add775 = add i32 %add765, %or763
  %add776 = add i32 %add775, %or.i2491
  %shl.i2483 = shl i32 %add738, 30
  %shr.i2484 = lshr i32 %add738, 2
  %or.i2485 = or i32 %shl.i2483, %shr.i2484
  %shl.i2480 = shl i32 %add776, 5
  %shr.i2481 = lshr i32 %add776, 27
  %or.i2482 = or i32 %shl.i2480, %shr.i2481
  %and779 = and i32 %add757, %or.i2485
  %or780 = or i32 %add757, %or.i2485
  %and781 = and i32 %or780, %or.i2494
  %or782 = or i32 %and781, %and779
  %xor787 = xor i32 %or.i2605, %or.i2623
  %xor789 = xor i32 %xor787, %or.i2551
  %xor791 = xor i32 %xor789, %or.i2506
  %shl.i2477 = shl i32 %xor791, 1
  %shr.i2478 = lshr i32 %xor791, 31
  %or.i2479 = or i32 %shl.i2477, %shr.i2478
  %add783 = add i32 %or.i2479, -1894007588
  %add784 = add i32 %add783, %or.i2503
  %add794 = add i32 %add784, %or782
  %add795 = add i32 %add794, %or.i2482
  %shl.i2474 = shl i32 %add757, 30
  %shr.i2475 = lshr i32 %add757, 2
  %or.i2476 = or i32 %shl.i2474, %shr.i2475
  %shl.i2471 = shl i32 %add795, 5
  %shr.i2472 = lshr i32 %add795, 27
  %or.i2473 = or i32 %shl.i2471, %shr.i2472
  %and798 = and i32 %add776, %or.i2476
  %or799 = or i32 %add776, %or.i2476
  %and800 = and i32 %or799, %or.i2485
  %or801 = or i32 %and800, %and798
  %xor806 = xor i32 %or.i2596, %or.i2614
  %xor808 = xor i32 %xor806, %or.i2542
  %xor810 = xor i32 %xor808, %or.i2497
  %shl.i2468 = shl i32 %xor810, 1
  %shr.i2469 = lshr i32 %xor810, 31
  %or.i2470 = or i32 %shl.i2468, %shr.i2469
  %add802 = add i32 %or.i2470, -1894007588
  %add803 = add i32 %add802, %or.i2494
  %add813 = add i32 %add803, %or801
  %add814 = add i32 %add813, %or.i2473
  %shl.i2465 = shl i32 %add776, 30
  %shr.i2466 = lshr i32 %add776, 2
  %or.i2467 = or i32 %shl.i2465, %shr.i2466
  %shl.i2462 = shl i32 %add814, 5
  %shr.i2463 = lshr i32 %add814, 27
  %or.i2464 = or i32 %shl.i2462, %shr.i2463
  %and817 = and i32 %add795, %or.i2467
  %or818 = or i32 %add795, %or.i2467
  %and819 = and i32 %or818, %or.i2476
  %or820 = or i32 %and819, %and817
  %xor825 = xor i32 %or.i2587, %or.i2605
  %xor827 = xor i32 %xor825, %or.i2533
  %xor829 = xor i32 %xor827, %or.i2488
  %shl.i2459 = shl i32 %xor829, 1
  %shr.i2460 = lshr i32 %xor829, 31
  %or.i2461 = or i32 %shl.i2459, %shr.i2460
  %add821 = add i32 %or.i2461, -1894007588
  %add822 = add i32 %add821, %or.i2485
  %add832 = add i32 %add822, %or820
  %add833 = add i32 %add832, %or.i2464
  %shl.i2456 = shl i32 %add795, 30
  %shr.i2457 = lshr i32 %add795, 2
  %or.i2458 = or i32 %shl.i2456, %shr.i2457
  %shl.i2453 = shl i32 %add833, 5
  %shr.i2454 = lshr i32 %add833, 27
  %or.i2455 = or i32 %shl.i2453, %shr.i2454
  %and836 = and i32 %add814, %or.i2458
  %or837 = or i32 %add814, %or.i2458
  %and838 = and i32 %or837, %or.i2467
  %or839 = or i32 %and838, %and836
  %xor844 = xor i32 %or.i2578, %or.i2596
  %xor846 = xor i32 %xor844, %or.i2524
  %xor848 = xor i32 %xor846, %or.i2479
  %shl.i2450 = shl i32 %xor848, 1
  %shr.i2451 = lshr i32 %xor848, 31
  %or.i2452 = or i32 %shl.i2450, %shr.i2451
  %add840 = add i32 %or.i2452, -1894007588
  %add841 = add i32 %add840, %or.i2476
  %add851 = add i32 %add841, %or839
  %add852 = add i32 %add851, %or.i2455
  %shl.i2447 = shl i32 %add814, 30
  %shr.i2448 = lshr i32 %add814, 2
  %or.i2449 = or i32 %shl.i2447, %shr.i2448
  %shl.i2444 = shl i32 %add852, 5
  %shr.i2445 = lshr i32 %add852, 27
  %or.i2446 = or i32 %shl.i2444, %shr.i2445
  %and855 = and i32 %add833, %or.i2449
  %or856 = or i32 %add833, %or.i2449
  %and857 = and i32 %or856, %or.i2458
  %or858 = or i32 %and857, %and855
  %xor863 = xor i32 %or.i2569, %or.i2587
  %xor865 = xor i32 %xor863, %or.i2515
  %xor867 = xor i32 %xor865, %or.i2470
  %shl.i2441 = shl i32 %xor867, 1
  %shr.i2442 = lshr i32 %xor867, 31
  %or.i2443 = or i32 %shl.i2441, %shr.i2442
  %add859 = add i32 %or.i2443, -1894007588
  %add860 = add i32 %add859, %or.i2467
  %add870 = add i32 %add860, %or858
  %add871 = add i32 %add870, %or.i2446
  %shl.i2438 = shl i32 %add833, 30
  %shr.i2439 = lshr i32 %add833, 2
  %or.i2440 = or i32 %shl.i2438, %shr.i2439
  %shl.i2435 = shl i32 %add871, 5
  %shr.i2436 = lshr i32 %add871, 27
  %or.i2437 = or i32 %shl.i2435, %shr.i2436
  %and874 = and i32 %add852, %or.i2440
  %or875 = or i32 %add852, %or.i2440
  %and876 = and i32 %or875, %or.i2449
  %or877 = or i32 %and876, %and874
  %xor882 = xor i32 %or.i2560, %or.i2578
  %xor884 = xor i32 %xor882, %or.i2506
  %xor886 = xor i32 %xor884, %or.i2461
  %shl.i2432 = shl i32 %xor886, 1
  %shr.i2433 = lshr i32 %xor886, 31
  %or.i2434 = or i32 %shl.i2432, %shr.i2433
  %add878 = add i32 %or.i2434, -1894007588
  %add879 = add i32 %add878, %or.i2458
  %add889 = add i32 %add879, %or877
  %add890 = add i32 %add889, %or.i2437
  %shl.i2429 = shl i32 %add852, 30
  %shr.i2430 = lshr i32 %add852, 2
  %or.i2431 = or i32 %shl.i2429, %shr.i2430
  %shl.i2426 = shl i32 %add890, 5
  %shr.i2427 = lshr i32 %add890, 27
  %or.i2428 = or i32 %shl.i2426, %shr.i2427
  %and893 = and i32 %add871, %or.i2431
  %or894 = or i32 %add871, %or.i2431
  %and895 = and i32 %or894, %or.i2440
  %or896 = or i32 %and895, %and893
  %xor901 = xor i32 %or.i2551, %or.i2569
  %xor903 = xor i32 %xor901, %or.i2497
  %xor905 = xor i32 %xor903, %or.i2452
  %shl.i2423 = shl i32 %xor905, 1
  %shr.i2424 = lshr i32 %xor905, 31
  %or.i2425 = or i32 %shl.i2423, %shr.i2424
  %add897 = add i32 %or.i2425, -1894007588
  %add898 = add i32 %add897, %or.i2449
  %add908 = add i32 %add898, %or896
  %add909 = add i32 %add908, %or.i2428
  %shl.i2420 = shl i32 %add871, 30
  %shr.i2421 = lshr i32 %add871, 2
  %or.i2422 = or i32 %shl.i2420, %shr.i2421
  %shl.i2417 = shl i32 %add909, 5
  %shr.i2418 = lshr i32 %add909, 27
  %or.i2419 = or i32 %shl.i2417, %shr.i2418
  %and912 = and i32 %add890, %or.i2422
  %or913 = or i32 %add890, %or.i2422
  %and914 = and i32 %or913, %or.i2431
  %or915 = or i32 %and914, %and912
  %xor920 = xor i32 %or.i2542, %or.i2560
  %xor922 = xor i32 %xor920, %or.i2488
  %xor924 = xor i32 %xor922, %or.i2443
  %shl.i2414 = shl i32 %xor924, 1
  %shr.i2415 = lshr i32 %xor924, 31
  %or.i2416 = or i32 %shl.i2414, %shr.i2415
  %add916 = add i32 %or.i2416, -1894007588
  %add917 = add i32 %add916, %or.i2440
  %add927 = add i32 %add917, %or915
  %add928 = add i32 %add927, %or.i2419
  %shl.i2411 = shl i32 %add890, 30
  %shr.i2412 = lshr i32 %add890, 2
  %or.i2413 = or i32 %shl.i2411, %shr.i2412
  %shl.i2408 = shl i32 %add928, 5
  %shr.i2409 = lshr i32 %add928, 27
  %or.i2410 = or i32 %shl.i2408, %shr.i2409
  %and931 = and i32 %add909, %or.i2413
  %or932 = or i32 %add909, %or.i2413
  %and933 = and i32 %or932, %or.i2422
  %or934 = or i32 %and933, %and931
  %xor939 = xor i32 %or.i2533, %or.i2551
  %xor941 = xor i32 %xor939, %or.i2479
  %xor943 = xor i32 %xor941, %or.i2434
  %shl.i2405 = shl i32 %xor943, 1
  %shr.i2406 = lshr i32 %xor943, 31
  %or.i2407 = or i32 %shl.i2405, %shr.i2406
  %add935 = add i32 %or.i2407, -1894007588
  %add936 = add i32 %add935, %or.i2431
  %add946 = add i32 %add936, %or934
  %add947 = add i32 %add946, %or.i2410
  %shl.i2402 = shl i32 %add909, 30
  %shr.i2403 = lshr i32 %add909, 2
  %or.i2404 = or i32 %shl.i2402, %shr.i2403
  %shl.i2399 = shl i32 %add947, 5
  %shr.i2400 = lshr i32 %add947, 27
  %or.i2401 = or i32 %shl.i2399, %shr.i2400
  %and950 = and i32 %add928, %or.i2404
  %or951 = or i32 %add928, %or.i2404
  %and952 = and i32 %or951, %or.i2413
  %or953 = or i32 %and952, %and950
  %xor958 = xor i32 %or.i2524, %or.i2542
  %xor960 = xor i32 %xor958, %or.i2470
  %xor962 = xor i32 %xor960, %or.i2425
  %shl.i2396 = shl i32 %xor962, 1
  %shr.i2397 = lshr i32 %xor962, 31
  %or.i2398 = or i32 %shl.i2396, %shr.i2397
  %add954 = add i32 %or.i2398, -1894007588
  %add955 = add i32 %add954, %or.i2422
  %add965 = add i32 %add955, %or953
  %add966 = add i32 %add965, %or.i2401
  %shl.i2393 = shl i32 %add928, 30
  %shr.i2394 = lshr i32 %add928, 2
  %or.i2395 = or i32 %shl.i2393, %shr.i2394
  %shl.i2390 = shl i32 %add966, 5
  %shr.i2391 = lshr i32 %add966, 27
  %or.i2392 = or i32 %shl.i2390, %shr.i2391
  %xor969 = xor i32 %or.i2395, %or.i2404
  %xor970 = xor i32 %xor969, %add947
  %xor975 = xor i32 %or.i2515, %or.i2533
  %xor977 = xor i32 %xor975, %or.i2461
  %xor979 = xor i32 %xor977, %or.i2416
  %shl.i2387 = shl i32 %xor979, 1
  %shr.i2388 = lshr i32 %xor979, 31
  %or.i2389 = or i32 %shl.i2387, %shr.i2388
  %add971 = add i32 %or.i2389, -899497514
  %add972 = add i32 %add971, %or.i2413
  %add982 = add i32 %add972, %xor970
  %add983 = add i32 %add982, %or.i2392
  %shl.i2384 = shl i32 %add947, 30
  %shr.i2385 = lshr i32 %add947, 2
  %or.i2386 = or i32 %shl.i2384, %shr.i2385
  %shl.i2381 = shl i32 %add983, 5
  %shr.i2382 = lshr i32 %add983, 27
  %or.i2383 = or i32 %shl.i2381, %shr.i2382
  %xor986 = xor i32 %or.i2386, %or.i2395
  %xor987 = xor i32 %xor986, %add966
  %xor992 = xor i32 %or.i2506, %or.i2524
  %xor994 = xor i32 %xor992, %or.i2452
  %xor996 = xor i32 %xor994, %or.i2407
  %shl.i2378 = shl i32 %xor996, 1
  %shr.i2379 = lshr i32 %xor996, 31
  %or.i2380 = or i32 %shl.i2378, %shr.i2379
  %add988 = add i32 %or.i2380, -899497514
  %add989 = add i32 %add988, %or.i2404
  %add999 = add i32 %add989, %xor987
  %add1000 = add i32 %add999, %or.i2383
  %shl.i2375 = shl i32 %add966, 30
  %shr.i2376 = lshr i32 %add966, 2
  %or.i2377 = or i32 %shl.i2375, %shr.i2376
  %shl.i2372 = shl i32 %add1000, 5
  %shr.i2373 = lshr i32 %add1000, 27
  %or.i2374 = or i32 %shl.i2372, %shr.i2373
  %xor1003 = xor i32 %or.i2377, %or.i2386
  %xor1004 = xor i32 %xor1003, %add983
  %xor1009 = xor i32 %or.i2497, %or.i2515
  %xor1011 = xor i32 %xor1009, %or.i2443
  %xor1013 = xor i32 %xor1011, %or.i2398
  %shl.i2369 = shl i32 %xor1013, 1
  %shr.i2370 = lshr i32 %xor1013, 31
  %or.i2371 = or i32 %shl.i2369, %shr.i2370
  %add1005 = add i32 %or.i2371, -899497514
  %add1006 = add i32 %add1005, %or.i2395
  %add1016 = add i32 %add1006, %xor1004
  %add1017 = add i32 %add1016, %or.i2374
  %shl.i2366 = shl i32 %add983, 30
  %shr.i2367 = lshr i32 %add983, 2
  %or.i2368 = or i32 %shl.i2366, %shr.i2367
  %shl.i2363 = shl i32 %add1017, 5
  %shr.i2364 = lshr i32 %add1017, 27
  %or.i2365 = or i32 %shl.i2363, %shr.i2364
  %xor1020 = xor i32 %or.i2368, %or.i2377
  %xor1021 = xor i32 %xor1020, %add1000
  %xor1026 = xor i32 %or.i2488, %or.i2506
  %xor1028 = xor i32 %xor1026, %or.i2434
  %xor1030 = xor i32 %xor1028, %or.i2389
  %shl.i2360 = shl i32 %xor1030, 1
  %shr.i2361 = lshr i32 %xor1030, 31
  %or.i2362 = or i32 %shl.i2360, %shr.i2361
  %add1022 = add i32 %or.i2362, -899497514
  %add1023 = add i32 %add1022, %or.i2386
  %add1033 = add i32 %add1023, %xor1021
  %add1034 = add i32 %add1033, %or.i2365
  %shl.i2357 = shl i32 %add1000, 30
  %shr.i2358 = lshr i32 %add1000, 2
  %or.i2359 = or i32 %shl.i2357, %shr.i2358
  %shl.i2354 = shl i32 %add1034, 5
  %shr.i2355 = lshr i32 %add1034, 27
  %or.i2356 = or i32 %shl.i2354, %shr.i2355
  %xor1037 = xor i32 %or.i2359, %or.i2368
  %xor1038 = xor i32 %xor1037, %add1017
  %xor1043 = xor i32 %or.i2479, %or.i2497
  %xor1045 = xor i32 %xor1043, %or.i2425
  %xor1047 = xor i32 %xor1045, %or.i2380
  %shl.i2351 = shl i32 %xor1047, 1
  %shr.i2352 = lshr i32 %xor1047, 31
  %or.i2353 = or i32 %shl.i2351, %shr.i2352
  %add1039 = add i32 %or.i2353, -899497514
  %add1040 = add i32 %add1039, %or.i2377
  %add1050 = add i32 %add1040, %xor1038
  %add1051 = add i32 %add1050, %or.i2356
  %shl.i2348 = shl i32 %add1017, 30
  %shr.i2349 = lshr i32 %add1017, 2
  %or.i2350 = or i32 %shl.i2348, %shr.i2349
  %shl.i2345 = shl i32 %add1051, 5
  %shr.i2346 = lshr i32 %add1051, 27
  %or.i2347 = or i32 %shl.i2345, %shr.i2346
  %xor1054 = xor i32 %or.i2350, %or.i2359
  %xor1055 = xor i32 %xor1054, %add1034
  %xor1060 = xor i32 %or.i2470, %or.i2488
  %xor1062 = xor i32 %xor1060, %or.i2416
  %xor1064 = xor i32 %xor1062, %or.i2371
  %shl.i2342 = shl i32 %xor1064, 1
  %shr.i2343 = lshr i32 %xor1064, 31
  %or.i2344 = or i32 %shl.i2342, %shr.i2343
  %add1056 = add i32 %or.i2344, -899497514
  %add1057 = add i32 %add1056, %or.i2368
  %add1067 = add i32 %add1057, %xor1055
  %add1068 = add i32 %add1067, %or.i2347
  %shl.i2339 = shl i32 %add1034, 30
  %shr.i2340 = lshr i32 %add1034, 2
  %or.i2341 = or i32 %shl.i2339, %shr.i2340
  %shl.i2336 = shl i32 %add1068, 5
  %shr.i2337 = lshr i32 %add1068, 27
  %or.i2338 = or i32 %shl.i2336, %shr.i2337
  %xor1071 = xor i32 %or.i2341, %or.i2350
  %xor1072 = xor i32 %xor1071, %add1051
  %xor1077 = xor i32 %or.i2461, %or.i2479
  %xor1079 = xor i32 %xor1077, %or.i2407
  %xor1081 = xor i32 %xor1079, %or.i2362
  %shl.i2333 = shl i32 %xor1081, 1
  %shr.i2334 = lshr i32 %xor1081, 31
  %or.i2335 = or i32 %shl.i2333, %shr.i2334
  %add1073 = add i32 %or.i2335, -899497514
  %add1074 = add i32 %add1073, %or.i2359
  %add1084 = add i32 %add1074, %xor1072
  %add1085 = add i32 %add1084, %or.i2338
  %shl.i2330 = shl i32 %add1051, 30
  %shr.i2331 = lshr i32 %add1051, 2
  %or.i2332 = or i32 %shl.i2330, %shr.i2331
  %shl.i2327 = shl i32 %add1085, 5
  %shr.i2328 = lshr i32 %add1085, 27
  %or.i2329 = or i32 %shl.i2327, %shr.i2328
  %xor1088 = xor i32 %or.i2332, %or.i2341
  %xor1089 = xor i32 %xor1088, %add1068
  %xor1094 = xor i32 %or.i2452, %or.i2470
  %xor1096 = xor i32 %xor1094, %or.i2398
  %xor1098 = xor i32 %xor1096, %or.i2353
  %shl.i2324 = shl i32 %xor1098, 1
  %shr.i2325 = lshr i32 %xor1098, 31
  %or.i2326 = or i32 %shl.i2324, %shr.i2325
  %add1090 = add i32 %or.i2326, -899497514
  %add1091 = add i32 %add1090, %or.i2350
  %add1101 = add i32 %add1091, %xor1089
  %add1102 = add i32 %add1101, %or.i2329
  %shl.i2321 = shl i32 %add1068, 30
  %shr.i2322 = lshr i32 %add1068, 2
  %or.i2323 = or i32 %shl.i2321, %shr.i2322
  %shl.i2318 = shl i32 %add1102, 5
  %shr.i2319 = lshr i32 %add1102, 27
  %or.i2320 = or i32 %shl.i2318, %shr.i2319
  %xor1105 = xor i32 %or.i2323, %or.i2332
  %xor1106 = xor i32 %xor1105, %add1085
  %xor1111 = xor i32 %or.i2443, %or.i2461
  %xor1113 = xor i32 %xor1111, %or.i2389
  %xor1115 = xor i32 %xor1113, %or.i2344
  %shl.i2315 = shl i32 %xor1115, 1
  %shr.i2316 = lshr i32 %xor1115, 31
  %or.i2317 = or i32 %shl.i2315, %shr.i2316
  %add1107 = add i32 %or.i2317, -899497514
  %add1108 = add i32 %add1107, %or.i2341
  %add1118 = add i32 %add1108, %xor1106
  %add1119 = add i32 %add1118, %or.i2320
  %shl.i2312 = shl i32 %add1085, 30
  %shr.i2313 = lshr i32 %add1085, 2
  %or.i2314 = or i32 %shl.i2312, %shr.i2313
  %shl.i2309 = shl i32 %add1119, 5
  %shr.i2310 = lshr i32 %add1119, 27
  %or.i2311 = or i32 %shl.i2309, %shr.i2310
  %xor1122 = xor i32 %or.i2314, %or.i2323
  %xor1123 = xor i32 %xor1122, %add1102
  %xor1128 = xor i32 %or.i2434, %or.i2452
  %xor1130 = xor i32 %xor1128, %or.i2380
  %xor1132 = xor i32 %xor1130, %or.i2335
  %shl.i2306 = shl i32 %xor1132, 1
  %shr.i2307 = lshr i32 %xor1132, 31
  %or.i2308 = or i32 %shl.i2306, %shr.i2307
  %add1124 = add i32 %or.i2308, -899497514
  %add1125 = add i32 %add1124, %or.i2332
  %add1135 = add i32 %add1125, %xor1123
  %add1136 = add i32 %add1135, %or.i2311
  %shl.i2303 = shl i32 %add1102, 30
  %shr.i2304 = lshr i32 %add1102, 2
  %or.i2305 = or i32 %shl.i2303, %shr.i2304
  %shl.i2300 = shl i32 %add1136, 5
  %shr.i2301 = lshr i32 %add1136, 27
  %or.i2302 = or i32 %shl.i2300, %shr.i2301
  %xor1139 = xor i32 %or.i2305, %or.i2314
  %xor1140 = xor i32 %xor1139, %add1119
  %xor1145 = xor i32 %or.i2425, %or.i2443
  %xor1147 = xor i32 %xor1145, %or.i2371
  %xor1149 = xor i32 %xor1147, %or.i2326
  %shl.i2297 = shl i32 %xor1149, 1
  %shr.i2298 = lshr i32 %xor1149, 31
  %or.i2299 = or i32 %shl.i2297, %shr.i2298
  %add1141 = add i32 %or.i2299, -899497514
  %add1142 = add i32 %add1141, %or.i2323
  %add1152 = add i32 %add1142, %xor1140
  %add1153 = add i32 %add1152, %or.i2302
  %shl.i2294 = shl i32 %add1119, 30
  %shr.i2295 = lshr i32 %add1119, 2
  %or.i2296 = or i32 %shl.i2294, %shr.i2295
  %shl.i2291 = shl i32 %add1153, 5
  %shr.i2292 = lshr i32 %add1153, 27
  %or.i2293 = or i32 %shl.i2291, %shr.i2292
  %xor1156 = xor i32 %or.i2296, %or.i2305
  %xor1157 = xor i32 %xor1156, %add1136
  %xor1162 = xor i32 %or.i2416, %or.i2434
  %xor1164 = xor i32 %xor1162, %or.i2362
  %xor1166 = xor i32 %xor1164, %or.i2317
  %shl.i2288 = shl i32 %xor1166, 1
  %shr.i2289 = lshr i32 %xor1166, 31
  %or.i2290 = or i32 %shl.i2288, %shr.i2289
  %add1158 = add i32 %or.i2290, -899497514
  %add1159 = add i32 %add1158, %or.i2314
  %add1169 = add i32 %add1159, %xor1157
  %add1170 = add i32 %add1169, %or.i2293
  %shl.i2285 = shl i32 %add1136, 30
  %shr.i2286 = lshr i32 %add1136, 2
  %or.i2287 = or i32 %shl.i2285, %shr.i2286
  %shl.i2282 = shl i32 %add1170, 5
  %shr.i2283 = lshr i32 %add1170, 27
  %or.i2284 = or i32 %shl.i2282, %shr.i2283
  %xor1173 = xor i32 %or.i2287, %or.i2296
  %xor1174 = xor i32 %xor1173, %add1153
  %xor1179 = xor i32 %or.i2407, %or.i2425
  %xor1181 = xor i32 %xor1179, %or.i2353
  %xor1183 = xor i32 %xor1181, %or.i2308
  %shl.i2279 = shl i32 %xor1183, 1
  %shr.i2280 = lshr i32 %xor1183, 31
  %or.i2281 = or i32 %shl.i2279, %shr.i2280
  %add1175 = add i32 %or.i2281, -899497514
  %add1176 = add i32 %add1175, %or.i2305
  %add1186 = add i32 %add1176, %xor1174
  %add1187 = add i32 %add1186, %or.i2284
  %shl.i2276 = shl i32 %add1153, 30
  %shr.i2277 = lshr i32 %add1153, 2
  %or.i2278 = or i32 %shl.i2276, %shr.i2277
  %shl.i2273 = shl i32 %add1187, 5
  %shr.i2274 = lshr i32 %add1187, 27
  %or.i2275 = or i32 %shl.i2273, %shr.i2274
  %xor1190 = xor i32 %or.i2278, %or.i2287
  %xor1191 = xor i32 %xor1190, %add1170
  %xor1196 = xor i32 %or.i2398, %or.i2416
  %xor1198 = xor i32 %xor1196, %or.i2344
  %xor1200 = xor i32 %xor1198, %or.i2299
  %shl.i2270 = shl i32 %xor1200, 1
  %shr.i2271 = lshr i32 %xor1200, 31
  %or.i2272 = or i32 %shl.i2270, %shr.i2271
  %add1192 = add i32 %or.i2272, -899497514
  %add1193 = add i32 %add1192, %or.i2296
  %add1203 = add i32 %add1193, %xor1191
  %add1204 = add i32 %add1203, %or.i2275
  %shl.i2267 = shl i32 %add1170, 30
  %shr.i2268 = lshr i32 %add1170, 2
  %or.i2269 = or i32 %shl.i2267, %shr.i2268
  %shl.i2264 = shl i32 %add1204, 5
  %shr.i2265 = lshr i32 %add1204, 27
  %or.i2266 = or i32 %shl.i2264, %shr.i2265
  %xor1207 = xor i32 %or.i2269, %or.i2278
  %xor1208 = xor i32 %xor1207, %add1187
  %xor1213 = xor i32 %or.i2389, %or.i2407
  %xor1215 = xor i32 %xor1213, %or.i2335
  %xor1217 = xor i32 %xor1215, %or.i2290
  %shl.i2261 = shl i32 %xor1217, 1
  %shr.i2262 = lshr i32 %xor1217, 31
  %or.i2263 = or i32 %shl.i2261, %shr.i2262
  %add1209 = add i32 %or.i2263, -899497514
  %add1210 = add i32 %add1209, %or.i2287
  %add1220 = add i32 %add1210, %xor1208
  %add1221 = add i32 %add1220, %or.i2266
  %shl.i2258 = shl i32 %add1187, 30
  %shr.i2259 = lshr i32 %add1187, 2
  %or.i2260 = or i32 %shl.i2258, %shr.i2259
  %shl.i2255 = shl i32 %add1221, 5
  %shr.i2256 = lshr i32 %add1221, 27
  %or.i2257 = or i32 %shl.i2255, %shr.i2256
  %xor1224 = xor i32 %or.i2260, %or.i2269
  %xor1225 = xor i32 %xor1224, %add1204
  %xor1230 = xor i32 %or.i2380, %or.i2398
  %xor1232 = xor i32 %xor1230, %or.i2326
  %xor1234 = xor i32 %xor1232, %or.i2281
  %shl.i2252 = shl i32 %xor1234, 1
  %shr.i2253 = lshr i32 %xor1234, 31
  %or.i2254 = or i32 %shl.i2252, %shr.i2253
  %add1226 = add i32 %or.i2254, -899497514
  %add1227 = add i32 %add1226, %or.i2278
  %add1237 = add i32 %add1227, %xor1225
  %add1238 = add i32 %add1237, %or.i2257
  %shl.i2249 = shl i32 %add1204, 30
  %shr.i2250 = lshr i32 %add1204, 2
  %or.i2251 = or i32 %shl.i2249, %shr.i2250
  %shl.i2246 = shl i32 %add1238, 5
  %shr.i2247 = lshr i32 %add1238, 27
  %or.i2248 = or i32 %shl.i2246, %shr.i2247
  %xor1241 = xor i32 %or.i2251, %or.i2260
  %xor1242 = xor i32 %xor1241, %add1221
  %xor1247 = xor i32 %or.i2371, %or.i2389
  %xor1249 = xor i32 %xor1247, %or.i2317
  %xor1251 = xor i32 %xor1249, %or.i2272
  %shl.i2243 = shl i32 %xor1251, 1
  %shr.i2244 = lshr i32 %xor1251, 31
  %or.i2245 = or i32 %shl.i2243, %shr.i2244
  %add1243 = add i32 %or.i2245, -899497514
  %add1244 = add i32 %add1243, %or.i2269
  %add1254 = add i32 %add1244, %xor1242
  %add1255 = add i32 %add1254, %or.i2248
  %shl.i2240 = shl i32 %add1221, 30
  %shr.i2241 = lshr i32 %add1221, 2
  %or.i2242 = or i32 %shl.i2240, %shr.i2241
  %shl.i2237 = shl i32 %add1255, 5
  %shr.i2238 = lshr i32 %add1255, 27
  %or.i2239 = or i32 %shl.i2237, %shr.i2238
  %xor1258 = xor i32 %or.i2242, %or.i2251
  %xor1259 = xor i32 %xor1258, %add1238
  %xor1264 = xor i32 %or.i2362, %or.i2380
  %xor1266 = xor i32 %xor1264, %or.i2308
  %xor1268 = xor i32 %xor1266, %or.i2263
  %shl.i2234 = shl i32 %xor1268, 1
  %shr.i2235 = lshr i32 %xor1268, 31
  %or.i2236 = or i32 %shl.i2234, %shr.i2235
  %add1260 = add i32 %or.i2236, -899497514
  %add1261 = add i32 %add1260, %or.i2260
  %add1271 = add i32 %add1261, %xor1259
  %add1272 = add i32 %add1271, %or.i2239
  %shl.i2231 = shl i32 %add1238, 30
  %shr.i2232 = lshr i32 %add1238, 2
  %or.i2233 = or i32 %shl.i2231, %shr.i2232
  %shl.i2228 = shl i32 %add1272, 5
  %shr.i2229 = lshr i32 %add1272, 27
  %or.i2230 = or i32 %shl.i2228, %shr.i2229
  %xor1275 = xor i32 %or.i2233, %or.i2242
  %xor1276 = xor i32 %xor1275, %add1255
  %xor1281 = xor i32 %or.i2353, %or.i2371
  %xor1283 = xor i32 %xor1281, %or.i2299
  %xor1285 = xor i32 %xor1283, %or.i2254
  %shl.i2225 = shl i32 %xor1285, 1
  %shr.i2226 = lshr i32 %xor1285, 31
  %or.i2227 = or i32 %shl.i2225, %shr.i2226
  %add1277 = add i32 %or.i2227, -899497514
  %add1278 = add i32 %add1277, %or.i2251
  %add1288 = add i32 %add1278, %xor1276
  %add1289 = add i32 %add1288, %or.i2230
  %shl.i2222 = shl i32 %add1255, 30
  %shr.i2223 = lshr i32 %add1255, 2
  %or.i2224 = or i32 %shl.i2222, %shr.i2223
  %shl.i2219 = shl i32 %add1289, 5
  %shr.i2220 = lshr i32 %add1289, 27
  %or.i2221 = or i32 %shl.i2219, %shr.i2220
  %xor1292 = xor i32 %or.i2224, %or.i2233
  %xor1293 = xor i32 %xor1292, %add1272
  %xor1298 = xor i32 %or.i2344, %or.i2362
  %xor1300 = xor i32 %xor1298, %or.i2290
  %xor1302 = xor i32 %xor1300, %or.i2245
  %shl.i2216 = shl i32 %xor1302, 1
  %shr.i2217 = lshr i32 %xor1302, 31
  %or.i2218 = or i32 %shl.i2216, %shr.i2217
  %shl.i2213 = shl i32 %add1272, 30
  %shr.i2214 = lshr i32 %add1272, 2
  %or.i2215 = or i32 %shl.i2213, %shr.i2214
  %add1294 = add i32 %5, -899497514
  %add1295 = add i32 %add1294, %or.i2218
  %add1305 = add i32 %add1295, %or.i2242
  %add1306 = add i32 %add1305, %xor1293
  %add1309 = add i32 %add1306, %or.i2221
  store i32 %add1309, i32* %h0, align 4, !tbaa !5
  %14 = load i32, i32* %h117, align 4, !tbaa !10
  %add1312 = add i32 %add1289, %14
  store i32 %add1312, i32* %h1, align 4, !tbaa !10
  %15 = load i32, i32* %h218, align 4, !tbaa !11
  %add1315 = add i32 %or.i2215, %15
  store i32 %add1315, i32* %h2, align 4, !tbaa !11
  %16 = load i32, i32* %h319, align 4, !tbaa !12
  %add1318 = add i32 %or.i2224, %16
  store i32 %add1318, i32* %h3, align 4, !tbaa !12
  %17 = load i32, i32* %h420, align 4, !tbaa !13
  %add1321 = add i32 %or.i2233, %17
  store i32 %add1321, i32* %h4, align 4, !tbaa !13
  ret void
}

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1

; Function Attrs: nounwind
define amdgpu_kernel void @opencl_pmk_kernel(%struct.gpu_inbuffer addrspace(1)* nocapture readonly %inbuffer, %struct.gpu_outbuffer addrspace(1)* nocapture %outbuffer) local_unnamed_addr #0 !kernel_arg_addr_space !0 !kernel_arg_access_qual !2 !kernel_arg_type !14 !kernel_arg_base_type !14 !kernel_arg_type_qual !15 {
entry:
  %temp_ctx = alloca %struct.SHA_DEV_CTX, align 4
  %ipad = alloca %struct.SHA_DEV_CTX, align 4
  %opad = alloca %struct.SHA_DEV_CTX, align 4
  %0 = tail call i32 @llvm.amdgcn.workgroup.id.x() #4
  %retval.0.i8.i = zext i32 %0 to i64
  %dispatch_ptr.i9.i = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #4
  %xy_size_ptr.i10.i = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr.i9.i, i64 4
  %1 = bitcast i8 addrspace(2)* %xy_size_ptr.i10.i to i32 addrspace(2)*
  %xy_size.i11.i = load i32, i32 addrspace(2)* %1, align 4, !invariant.load !16
  %x_size.i.i = and i32 %xy_size.i11.i, 65535
  %x_size.ext.i.i = zext i32 %x_size.i.i to i64
  %mul29.i = mul nuw nsw i64 %x_size.ext.i.i, %retval.0.i8.i
  %2 = tail call i32 @llvm.amdgcn.workitem.id.x() #4, !range !17
  %retval.0.i638.i = zext i32 %2 to i64
  %add39.i = add nuw nsw i64 %mul29.i, %retval.0.i638.i
  %3 = tail call i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #4
  %arrayidx.i.i = getelementptr inbounds i8, i8 addrspace(2)* %3, i64 4
  %4 = bitcast i8 addrspace(2)* %arrayidx.i.i to i32 addrspace(2)*
  %5 = load i32, i32 addrspace(2)* %4, align 4, !tbaa !18
  %conv.i.i = zext i32 %5 to i64
  %add4.i = add nuw nsw i64 %add39.i, %conv.i.i
  %6 = bitcast %struct.SHA_DEV_CTX* %temp_ctx to i8*
  call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %6) #4
  %7 = bitcast %struct.SHA_DEV_CTX* %ipad to i8*
  call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %7) #4
  %8 = bitcast %struct.SHA_DEV_CTX* %opad to i8*
  call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %8) #4
  %sext = shl i64 %add4.i, 32
  %idxprom = ashr exact i64 %sext, 32
  %h0 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 0, i32 0
  %9 = load i32, i32 addrspace(1)* %h0, align 4, !tbaa !19
  %h01 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ipad, i32 0, i32 0
  store i32 %9, i32* %h01, align 4, !tbaa !5
  %h1 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 0, i32 1
  %10 = load i32, i32 addrspace(1)* %h1, align 4, !tbaa !21
  %h15 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ipad, i32 0, i32 1
  store i32 %10, i32* %h15, align 4, !tbaa !10
  %h2 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 0, i32 2
  %11 = load i32, i32 addrspace(1)* %h2, align 4, !tbaa !22
  %h29 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ipad, i32 0, i32 2
  store i32 %11, i32* %h29, align 4, !tbaa !11
  %h3 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 0, i32 3
  %12 = load i32, i32 addrspace(1)* %h3, align 4, !tbaa !23
  %h313 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ipad, i32 0, i32 3
  store i32 %12, i32* %h313, align 4, !tbaa !12
  %h4 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 0, i32 4
  %13 = load i32, i32 addrspace(1)* %h4, align 4, !tbaa !24
  %h417 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %ipad, i32 0, i32 4
  store i32 %13, i32* %h417, align 4, !tbaa !13
  %h020 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 1, i32 0
  %14 = load i32, i32 addrspace(1)* %h020, align 4, !tbaa !25
  %h021 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %opad, i32 0, i32 0
  store i32 %14, i32* %h021, align 4, !tbaa !5
  %h125 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 1, i32 1
  %15 = load i32, i32 addrspace(1)* %h125, align 4, !tbaa !26
  %h126 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %opad, i32 0, i32 1
  store i32 %15, i32* %h126, align 4, !tbaa !10
  %h230 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 1, i32 2
  %16 = load i32, i32 addrspace(1)* %h230, align 4, !tbaa !27
  %h231 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %opad, i32 0, i32 2
  store i32 %16, i32* %h231, align 4, !tbaa !11
  %h335 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 1, i32 3
  %17 = load i32, i32 addrspace(1)* %h335, align 4, !tbaa !28
  %h336 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %opad, i32 0, i32 3
  store i32 %17, i32* %h336, align 4, !tbaa !12
  %h440 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 1, i32 4
  %18 = load i32, i32 addrspace(1)* %h440, align 4, !tbaa !29
  %h441 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %opad, i32 0, i32 4
  store i32 %18, i32* %h441, align 4, !tbaa !13
  %h044 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 2, i32 0
  %19 = load i32, i32 addrspace(1)* %h044, align 4, !tbaa !18
  %h045 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %temp_ctx, i32 0, i32 0
  store i32 %19, i32* %h045, align 4, !tbaa !5
  %h149 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 2, i32 1
  %20 = load i32, i32 addrspace(1)* %h149, align 4, !tbaa !18
  %h150 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %temp_ctx, i32 0, i32 1
  store i32 %20, i32* %h150, align 4, !tbaa !10
  %h254 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 2, i32 2
  %21 = load i32, i32 addrspace(1)* %h254, align 4, !tbaa !18
  %h255 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %temp_ctx, i32 0, i32 2
  store i32 %21, i32* %h255, align 4, !tbaa !11
  %h359 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 2, i32 3
  %22 = load i32, i32 addrspace(1)* %h359, align 4, !tbaa !18
  %h360 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %temp_ctx, i32 0, i32 3
  store i32 %22, i32* %h360, align 4, !tbaa !12
  %h464 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 2, i32 4
  %23 = load i32, i32 addrspace(1)* %h464, align 4, !tbaa !30
  %h465 = getelementptr inbounds %struct.SHA_DEV_CTX, %struct.SHA_DEV_CTX* %temp_ctx, i32 0, i32 4
  store i32 %23, i32* %h465, align 4, !tbaa !13
  br label %for.body

for.body:                                         ; preds = %for.body, %entry
  %pmk_ctx.sroa.0.0288 = phi i32 [ %19, %entry ], [ %xor.6, %for.body ]
  %pmk_ctx.sroa.10.0287 = phi i32 [ %20, %entry ], [ %xor81.6, %for.body ]
  %pmk_ctx.sroa.18.0286 = phi i32 [ %21, %entry ], [ %xor84.6, %for.body ]
  %pmk_ctx.sroa.26.0285 = phi i32 [ %22, %entry ], [ %xor87.6, %for.body ]
  %pmk_ctx.sroa.34.0284 = phi i32 [ %23, %entry ], [ %xor90.6, %for.body ]
  %i.0283 = phi i32 [ 0, %entry ], [ %inc.6, %for.body ]
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %24 = load i32, i32* %h045, align 4, !tbaa !5
  %xor = xor i32 %24, %pmk_ctx.sroa.0.0288
  %25 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81 = xor i32 %25, %pmk_ctx.sroa.10.0287
  %26 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84 = xor i32 %26, %pmk_ctx.sroa.18.0286
  %27 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87 = xor i32 %27, %pmk_ctx.sroa.26.0285
  %28 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90 = xor i32 %28, %pmk_ctx.sroa.34.0284
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %29 = load i32, i32* %h045, align 4, !tbaa !5
  %xor.1 = xor i32 %xor, %29
  %30 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81.1 = xor i32 %xor81, %30
  %31 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84.1 = xor i32 %xor84, %31
  %32 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87.1 = xor i32 %xor87, %32
  %33 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90.1 = xor i32 %xor90, %33
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %34 = load i32, i32* %h045, align 4, !tbaa !5
  %xor.2 = xor i32 %xor.1, %34
  %35 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81.2 = xor i32 %xor81.1, %35
  %36 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84.2 = xor i32 %xor84.1, %36
  %37 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87.2 = xor i32 %xor87.1, %37
  %38 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90.2 = xor i32 %xor90.1, %38
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %39 = load i32, i32* %h045, align 4, !tbaa !5
  %xor.3 = xor i32 %xor.2, %39
  %40 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81.3 = xor i32 %xor81.2, %40
  %41 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84.3 = xor i32 %xor84.2, %41
  %42 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87.3 = xor i32 %xor87.2, %42
  %43 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90.3 = xor i32 %xor90.2, %43
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %44 = load i32, i32* %h045, align 4, !tbaa !5
  %xor.4 = xor i32 %xor.3, %44
  %45 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81.4 = xor i32 %xor81.3, %45
  %46 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84.4 = xor i32 %xor84.3, %46
  %47 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87.4 = xor i32 %xor87.3, %47
  %48 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90.4 = xor i32 %xor90.3, %48
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %49 = load i32, i32* %h045, align 4, !tbaa !5
  %xor.5 = xor i32 %xor.4, %49
  %50 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81.5 = xor i32 %xor81.4, %50
  %51 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84.5 = xor i32 %xor84.4, %51
  %52 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87.5 = xor i32 %xor87.4, %52
  %53 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90.5 = xor i32 %xor90.4, %53
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %54 = load i32, i32* %h045, align 4, !tbaa !5
  %xor.6 = xor i32 %xor.5, %54
  %55 = load i32, i32* %h150, align 4, !tbaa !10
  %xor81.6 = xor i32 %xor81.5, %55
  %56 = load i32, i32* %h255, align 4, !tbaa !11
  %xor84.6 = xor i32 %xor84.5, %56
  %57 = load i32, i32* %h360, align 4, !tbaa !12
  %xor87.6 = xor i32 %xor87.5, %57
  %58 = load i32, i32* %h465, align 4, !tbaa !13
  %xor90.6 = xor i32 %xor90.5, %58
  %inc.6 = add nuw nsw i32 %i.0283, 7
  %exitcond289.6 = icmp eq i32 %inc.6, 4095
  br i1 %exitcond289.6, label %for.end, label %for.body

for.end:                                          ; preds = %for.body
  %h094 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 0, i32 0
  store i32 %xor.6, i32 addrspace(1)* %h094, align 4, !tbaa !31
  %h199 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 0, i32 1
  store i32 %xor81.6, i32 addrspace(1)* %h199, align 4, !tbaa !33
  %h2104 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 0, i32 2
  store i32 %xor84.6, i32 addrspace(1)* %h2104, align 4, !tbaa !34
  %h3109 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 0, i32 3
  store i32 %xor87.6, i32 addrspace(1)* %h3109, align 4, !tbaa !35
  %h4114 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 0, i32 4
  store i32 %xor90.6, i32 addrspace(1)* %h4114, align 4, !tbaa !36
  %h0117 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 3, i32 0
  %59 = load i32, i32 addrspace(1)* %h0117, align 4, !tbaa !18
  store i32 %59, i32* %h045, align 4, !tbaa !5
  %h1122 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 3, i32 1
  %60 = load i32, i32 addrspace(1)* %h1122, align 4, !tbaa !18
  store i32 %60, i32* %h150, align 4, !tbaa !10
  %h2127 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 3, i32 2
  %61 = load i32, i32 addrspace(1)* %h2127, align 4, !tbaa !18
  store i32 %61, i32* %h255, align 4, !tbaa !11
  %h3132 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 3, i32 3
  %62 = load i32, i32 addrspace(1)* %h3132, align 4, !tbaa !18
  store i32 %62, i32* %h360, align 4, !tbaa !12
  %h4137 = getelementptr inbounds %struct.gpu_inbuffer, %struct.gpu_inbuffer addrspace(1)* %inbuffer, i64 %idxprom, i32 3, i32 4
  %63 = load i32, i32 addrspace(1)* %h4137, align 4, !tbaa !37
  store i32 %63, i32* %h465, align 4, !tbaa !13
  br label %for.body152

for.body152:                                      ; preds = %for.body152, %for.end
  %pmk_ctx.sroa.0.1282 = phi i32 [ %59, %for.end ], [ %xor155.6, %for.body152 ]
  %pmk_ctx.sroa.10.1281 = phi i32 [ %60, %for.end ], [ %xor158.6, %for.body152 ]
  %pmk_ctx.sroa.18.1280 = phi i32 [ %61, %for.end ], [ %xor161.6, %for.body152 ]
  %pmk_ctx.sroa.26.1279 = phi i32 [ %62, %for.end ], [ %xor164.6, %for.body152 ]
  %pmk_ctx.sroa.34.1278 = phi i32 [ %63, %for.end ], [ %xor167.6, %for.body152 ]
  %i.1277 = phi i32 [ 0, %for.end ], [ %inc169.6, %for.body152 ]
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %64 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155 = xor i32 %64, %pmk_ctx.sroa.0.1282
  %65 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158 = xor i32 %65, %pmk_ctx.sroa.10.1281
  %66 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161 = xor i32 %66, %pmk_ctx.sroa.18.1280
  %67 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164 = xor i32 %67, %pmk_ctx.sroa.26.1279
  %68 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167 = xor i32 %68, %pmk_ctx.sroa.34.1278
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %69 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155.1 = xor i32 %xor155, %69
  %70 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158.1 = xor i32 %xor158, %70
  %71 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161.1 = xor i32 %xor161, %71
  %72 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164.1 = xor i32 %xor164, %72
  %73 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167.1 = xor i32 %xor167, %73
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %74 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155.2 = xor i32 %xor155.1, %74
  %75 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158.2 = xor i32 %xor158.1, %75
  %76 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161.2 = xor i32 %xor161.1, %76
  %77 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164.2 = xor i32 %xor164.1, %77
  %78 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167.2 = xor i32 %xor167.1, %78
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %79 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155.3 = xor i32 %xor155.2, %79
  %80 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158.3 = xor i32 %xor158.2, %80
  %81 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161.3 = xor i32 %xor161.2, %81
  %82 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164.3 = xor i32 %xor164.2, %82
  %83 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167.3 = xor i32 %xor167.2, %83
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %84 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155.4 = xor i32 %xor155.3, %84
  %85 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158.4 = xor i32 %xor158.3, %85
  %86 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161.4 = xor i32 %xor161.3, %86
  %87 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164.4 = xor i32 %xor164.3, %87
  %88 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167.4 = xor i32 %xor167.3, %88
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %89 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155.5 = xor i32 %xor155.4, %89
  %90 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158.5 = xor i32 %xor158.4, %90
  %91 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161.5 = xor i32 %xor161.4, %91
  %92 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164.5 = xor i32 %xor164.4, %92
  %93 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167.5 = xor i32 %xor167.4, %93
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %ipad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  call fastcc void @sha1_process(%struct.SHA_DEV_CTX* byval nonnull align 4 %opad, %struct.SHA_DEV_CTX* nonnull %temp_ctx)
  %94 = load i32, i32* %h045, align 4, !tbaa !5
  %xor155.6 = xor i32 %xor155.5, %94
  %95 = load i32, i32* %h150, align 4, !tbaa !10
  %xor158.6 = xor i32 %xor158.5, %95
  %96 = load i32, i32* %h255, align 4, !tbaa !11
  %xor161.6 = xor i32 %xor161.5, %96
  %97 = load i32, i32* %h360, align 4, !tbaa !12
  %xor164.6 = xor i32 %xor164.5, %97
  %98 = load i32, i32* %h465, align 4, !tbaa !13
  %xor167.6 = xor i32 %xor167.5, %98
  %inc169.6 = add nuw nsw i32 %i.1277, 7
  %exitcond.6 = icmp eq i32 %inc169.6, 4095
  br i1 %exitcond.6, label %for.end170, label %for.body152

for.end170:                                       ; preds = %for.body152
  %h0174 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 1, i32 0
  store i32 %xor155.6, i32 addrspace(1)* %h0174, align 4, !tbaa !38
  %h1179 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 1, i32 1
  store i32 %xor158.6, i32 addrspace(1)* %h1179, align 4, !tbaa !39
  %h2184 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 1, i32 2
  store i32 %xor161.6, i32 addrspace(1)* %h2184, align 4, !tbaa !40
  %h3189 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 1, i32 3
  store i32 %xor164.6, i32 addrspace(1)* %h3189, align 4, !tbaa !41
  %h4194 = getelementptr inbounds %struct.gpu_outbuffer, %struct.gpu_outbuffer addrspace(1)* %outbuffer, i64 %idxprom, i32 1, i32 4
  store i32 %xor167.6, i32 addrspace(1)* %h4194, align 4, !tbaa !42
  call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %8) #4
  call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %7) #4
  call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %6) #4
  ret void
}

; Function Attrs: nounwind readnone
declare i32 @llvm.amdgcn.workgroup.id.x() #3

; Function Attrs: nounwind readnone
declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #3

; Function Attrs: nounwind readnone
declare i32 @llvm.amdgcn.workitem.id.x() #3

; Function Attrs: nounwind readnone
declare i8 addrspace(2)* @llvm.amdgcn.implicitarg.ptr() #3

attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="kaveri" "target-features"="+fp64-fp16-denormals,-fp32-denormals" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
attributes #2 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="kaveri" "target-features"="+fp64-fp16-denormals,-fp32-denormals" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { nounwind readnone }
attributes #4 = { nounwind }

!opencl.ocl.version = !{!0}
!llvm.ident = !{!1}

!0 = !{i32 1, i32 1}
!1 = !{!"clang version 5.0.0 (http://llvm.org/git/clang.git 072d1afbf058ca2202d144465877428cedae152b) (llvm/trunk 300824)"}
!2 = !{!"none", !"none"}
!3 = !{!"SHA_DEV_CTX*", !"SHA_DEV_CTX*"}
!4 = !{!"const", !""}
!5 = !{!6, !7, i64 0}
!6 = !{!"", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!6, !7, i64 4}
!11 = !{!6, !7, i64 8}
!12 = !{!6, !7, i64 12}
!13 = !{!6, !7, i64 16}
!14 = !{!"gpu_inbuffer*", !"gpu_outbuffer*"}
!15 = !{!"", !""}
!16 = !{}
!17 = !{i32 0, i32 1024}
!18 = !{!7, !7, i64 0}
!19 = !{!20, !7, i64 0}
!20 = !{!"", !6, i64 0, !6, i64 20, !6, i64 40, !6, i64 60}
!21 = !{!20, !7, i64 4}
!22 = !{!20, !7, i64 8}
!23 = !{!20, !7, i64 12}
!24 = !{!20, !7, i64 16}
!25 = !{!20, !7, i64 20}
!26 = !{!20, !7, i64 24}
!27 = !{!20, !7, i64 28}
!28 = !{!20, !7, i64 32}
!29 = !{!20, !7, i64 36}
!30 = !{!20, !7, i64 56}
!31 = !{!32, !7, i64 0}
!32 = !{!"", !6, i64 0, !6, i64 20}
!33 = !{!32, !7, i64 4}
!34 = !{!32, !7, i64 8}
!35 = !{!32, !7, i64 12}
!36 = !{!32, !7, i64 16}
!37 = !{!20, !7, i64 76}
!38 = !{!32, !7, i64 20}
!39 = !{!32, !7, i64 24}
!40 = !{!32, !7, i64 28}
!41 = !{!32, !7, i64 32}
!42 = !{!32, !7, i64 36}


More information about the llvm-commits mailing list