[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