Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
Go
Haskell
HLSL
Hook
Hylo
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Snowball
Scala
Solidity
Spice
Swift
LLVM TableGen
Toit
TypeScript Native
V
Vala
Visual Basic
Zig
Javascript
GIMPLE
llvm source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-windows-msvc19.15.26726" declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) declare { i32, i1 } @llvm.uadd.with.overflow.i32(i32, i32) declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) declare { i16, i1 } @llvm.uadd.with.overflow.i16(i16, i16) declare { i16, i1 } @llvm.sadd.with.overflow.i16(i16, i16) declare { i8, i1 } @llvm.uadd.with.overflow.i8(i8, i8) declare { i8, i1 } @llvm.sadd.with.overflow.i8(i8, i8) declare i32 @llvm.ctpop.i32(i32) @consts = internal constant [24 x i64] [ i64 140696242421760, i64 5369101120, i64 4739682551642295485, i64 13707061522067256066, i64 1000, i64 5369101080, i64 13047501493292579308, i64 5399242580416970238, i64 1008, i64 5369101064, i64 12862224889191923189, i64 5584519184517628683, i64 5369101072, i64 6565237076115806400, i64 11881506997593743146, i64 5369003607, i64 11, i64 65528, i64 5369101112, i64 11997186079040577978, i64 6449558000038194316, i64 5369101104, i64 5219935851977883798, i64 13226808227101362750 ] define i64 @lol_func([16 x i64]* %regs) nounwind ;naked { %stack = alloca[1024 x i8] ;26 image_base 7ff6658d0000 %n26.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 0 %n26 = load i64, i64* %n26.0 ;27 push 7ff6658d0000 %n27.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n27.1 = bitcast i8* %n27.0 to i64* store i64 %n26, i64* %n27.1 %n27 = load i64, i64* %n27.1 ;28 pop 7ff6658d0000 %n28.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n28.1 = bitcast i8* %n28.0 to i64* %n28 = load i64, i64* %n28.1 store i64 undef, i64* %n28.1 ;371 push 7ff6658d0000 %n371.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %n371.1 = bitcast i8* %n371.0 to i64* store i64 %n28, i64* %n371.1 %n371 = load i64, i64* %n371.1 ;375 pop 7ff6658d0000 %n375.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %n375.1 = bitcast i8* %n375.0 to i64* %n375 = load i64, i64* %n375.1 store i64 undef, i64* %n375.1 ;4b8 push 7ff6658d0000 %n4b8.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %n4b8.1 = bitcast i8* %n4b8.0 to i64* store i64 %n375, i64* %n4b8.1 %n4b8 = load i64, i64* %n4b8.1 ;4bc pop 7ff6658d0000 %n4bc.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %n4bc.1 = bitcast i8* %n4bc.0 to i64* %n4bc = load i64, i64* %n4bc.1 store i64 undef, i64* %n4bc.1 ;583 push 7ff6658d0000 %n583.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %n583.1 = bitcast i8* %n583.0 to i64* store i64 %n4bc, i64* %n583.1 %n583 = load i64, i64* %n583.1 ;587 pop 7ff6658d0000 %n587.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %n587.1 = bitcast i8* %n587.0 to i64* %n587 = load i64, i64* %n587.1 store i64 undef, i64* %n587.1 ;afa push 7ff6658d0000 %nafa.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %nafa.1 = bitcast i8* %nafa.0 to i64* store i64 %n587, i64* %nafa.1 %nafa = load i64, i64* %nafa.1 ;afb pop 7ff6658d0000 %nafb.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %nafb.1 = bitcast i8* %nafb.0 to i64* %nafb = load i64, i64* %nafb.1 store i64 undef, i64* %nafb.1 ;cd9 push 7ff6658d0000 %ncd9.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %ncd9.1 = bitcast i8* %ncd9.0 to i64* store i64 %nafb, i64* %ncd9.1 %ncd9 = load i64, i64* %ncd9.1 ;cdd pop 7ff6658d0000 %ncdd.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %ncdd.1 = bitcast i8* %ncdd.0 to i64* %ncdd = load i64, i64* %ncdd.1 store i64 undef, i64* %ncdd.1 ;dae push 7ff6658d0000 %ndae.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %ndae.1 = bitcast i8* %ndae.0 to i64* store i64 %ncdd, i64* %ndae.1 %ndae = load i64, i64* %ndae.1 ;db2 pop 7ff6658d0000 %ndb2.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 824 %ndb2.1 = bitcast i8* %ndb2.0 to i64* %ndb2 = load i64, i64* %ndb2.1 store i64 undef, i64* %ndb2.1 ;105c push 7ff6658d0000 %n105c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n105c.1 = bitcast i8* %n105c.0 to i64* store i64 %ndb2, i64* %n105c.1 %n105c = load i64, i64* %n105c.1 ;1060 pop 7ff6658d0000 %n1060.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n1060.1 = bitcast i8* %n1060.0 to i64* %n1060 = load i64, i64* %n1060.1 store i64 undef, i64* %n1060.1 ;10c3 push 7ff6658d0000 %n10c3.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n10c3.1 = bitcast i8* %n10c3.0 to i64* store i64 %n1060, i64* %n10c3.1 %n10c3 = load i64, i64* %n10c3.1 ;10c7 pop 7ff6658d0000 %n10c7.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n10c7.1 = bitcast i8* %n10c7.0 to i64* %n10c7 = load i64, i64* %n10c7.1 store i64 undef, i64* %n10c7.1 ;11c1 push 7ff6658d0000 %n11c1.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n11c1.1 = bitcast i8* %n11c1.0 to i64* store i64 %n10c7, i64* %n11c1.1 %n11c1 = load i64, i64* %n11c1.1 ;11c5 pop 7ff6658d0000 %n11c5.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 864 %n11c5.1 = bitcast i8* %n11c5.0 to i64* %n11c5 = load i64, i64* %n11c5.1 store i64 undef, i64* %n11c5.1 ;1240 push 7ff6658d0000 %n1240.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 958 %n1240.1 = bitcast i8* %n1240.0 to i64* store i64 %n11c5, i64* %n1240.1 %n1240 = load i64, i64* %n1240.1 ;1241 pop 7ff6658d0000 %n1241.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 958 %n1241.1 = bitcast i8* %n1241.0 to i64* %n1241 = load i64, i64* %n1241.1 store i64 undef, i64* %n1241.1 ;123e const 14005fb40 %n123e.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 1 %n123e.1 = bitcast i64* %n123e.0 to i64* %n123e = load i64, i64* %n123e.1 ;123f push 14005fb40 %n123f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 966 %n123f.1 = bitcast i8* %n123f.0 to i64* store i64 %n123e, i64* %n123f.1 %n123f = load i64, i64* %n123f.1 ;1242 pop 14005fb40 %n1242.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 966 %n1242.1 = bitcast i8* %n1242.0 to i64* %n1242 = load i64, i64* %n1242.1 store i64 undef, i64* %n1242.1 ;1243 add 7ff7a592fb40 %n1243 = add i64 %n1241, %n1242 ;1244 push 7ff7a592fb40 %n1244.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 966 %n1244.1 = bitcast i8* %n1244.0 to i64* store i64 %n1243, i64* %n1244.1 %n1244 = load i64, i64* %n1244.1 ;1248 pop 7ff7a592fb40 %n1248.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 966 %n1248.1 = bitcast i8* %n1248.0 to i64* %n1248 = load i64, i64* %n1248.1 store i64 undef, i64* %n1248.1 ;1249 load_const 41c6bc2b36c18cbd %n1249.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 2 %n1249.1 = bitcast i64* %n1249.0 to i64* %n1249 = load i64, i64* %n1249.1 ;124a push 41c6bc2b36c18cbd %n124a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 966 %n124a.1 = bitcast i8* %n124a.0 to i64* store i64 %n1249, i64* %n124a.1 %n124a = load i64, i64* %n124a.1 ;124b pop 41c6bc2b36c18cbd %n124b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 966 %n124b.1 = bitcast i8* %n124b.0 to i64* %n124b = load i64, i64* %n124b.1 store i64 undef, i64* %n124b.1 ;123c const be3943d4c93e7302 %n123c.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 3 %n123c.1 = bitcast i64* %n123c.0 to i64* %n123c = load i64, i64* %n123c.1 ;123d push be3943d4c93e7302 %n123d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 974 %n123d.1 = bitcast i8* %n123d.0 to i64* store i64 %n123c, i64* %n123d.1 %n123d = load i64, i64* %n123d.1 ;124c pop be3943d4c93e7302 %n124c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 974 %n124c.1 = bitcast i8* %n124c.0 to i64* %n124c = load i64, i64* %n124c.1 store i64 undef, i64* %n124c.1 ;124d add ffffffffffffffbf %n124d = add i64 %n124b, %n124c ;124e push ffffffffffffffbf %n124e.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 974 %n124e.1 = bitcast i8* %n124e.0 to i64* store i64 %n124d, i64* %n124e.1 %n124e = load i64, i64* %n124e.1 ;1252 pop ffffffffffffffbf %n1252.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 974 %n1252.1 = bitcast i8* %n1252.0 to i64* %n1252 = load i64, i64* %n1252.1 store i64 undef, i64* %n1252.1 ;1254 not 40 %n1254 = xor i64 %n1252, -1 ;117a const stack[18] %n117a.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 4 %n117a = load i64, i64* %n117a.0 ;117b push stack[18] %n117b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n117b.1 = bitcast i8* %n117b.0 to i64* store i64 %n117a, i64* %n117b.1 %n117b = load i64, i64* %n117b.1 ;117c pop stack[18] %n117c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n117c.1 = bitcast i8* %n117c.0 to i64* %n117c = load i64, i64* %n117c.1 store i64 undef, i64* %n117c.1 ;115f push 7ff6658d0000 %n115f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 976 %n115f.1 = bitcast i8* %n115f.0 to i64* store i64 %n10c7, i64* %n115f.1 %n115f = load i64, i64* %n115f.1 ;1160 pop 7ff6658d0000 %n1160.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 976 %n1160.1 = bitcast i8* %n1160.0 to i64* %n1160 = load i64, i64* %n1160.1 store i64 undef, i64* %n1160.1 ;115d const 14005fb18 %n115d.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 5 %n115d.1 = bitcast i64* %n115d.0 to i64* %n115d = load i64, i64* %n115d.1 ;115e push 14005fb18 %n115e.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n115e.1 = bitcast i8* %n115e.0 to i64* store i64 %n115d, i64* %n115e.1 %n115e = load i64, i64* %n115e.1 ;1161 pop 14005fb18 %n1161.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1161.1 = bitcast i8* %n1161.0 to i64* %n1161 = load i64, i64* %n1161.1 store i64 undef, i64* %n1161.1 ;1162 add 7ff7a592fb18 %n1162 = add i64 %n1160, %n1161 ;1163 push 7ff7a592fb18 %n1163.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1163.1 = bitcast i8* %n1163.0 to i64* store i64 %n1162, i64* %n1163.1 %n1163 = load i64, i64* %n1163.1 ;1167 pop 7ff7a592fb18 %n1167.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1167.1 = bitcast i8* %n1167.0 to i64* %n1167 = load i64, i64* %n1167.1 store i64 undef, i64* %n1167.1 ;1168 load_const b512097ac21539ec %n1168.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 6 %n1168.1 = bitcast i64* %n1168.0 to i64* %n1168 = load i64, i64* %n1168.1 ;1169 push b512097ac21539ec %n1169.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1169.1 = bitcast i8* %n1169.0 to i64* store i64 %n1168, i64* %n1169.1 %n1169 = load i64, i64* %n1169.1 ;116a pop b512097ac21539ec %n116a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n116a.1 = bitcast i8* %n116a.0 to i64* %n116a = load i64, i64* %n116a.1 store i64 undef, i64* %n116a.1 ;115b const 4aedf6853deabdfe %n115b.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 7 %n115b.1 = bitcast i64* %n115b.0 to i64* %n115b = load i64, i64* %n115b.1 ;115c push 4aedf6853deabdfe %n115c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n115c.1 = bitcast i8* %n115c.0 to i64* store i64 %n115b, i64* %n115c.1 %n115c = load i64, i64* %n115c.1 ;116b pop 4aedf6853deabdfe %n116b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n116b.1 = bitcast i8* %n116b.0 to i64* %n116b = load i64, i64* %n116b.1 store i64 undef, i64* %n116b.1 ;116c add fffffffffffff7ea %n116c = add i64 %n116a, %n116b ;116d push fffffffffffff7ea %n116d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n116d.1 = bitcast i8* %n116d.0 to i64* store i64 %n116c, i64* %n116d.1 %n116d = load i64, i64* %n116d.1 ;1171 pop fffffffffffff7ea %n1171.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1171.1 = bitcast i8* %n1171.0 to i64* %n1171 = load i64, i64* %n1171.1 store i64 undef, i64* %n1171.1 ;1173 not 815 %n1173 = xor i64 %n1171, -1 ;1121 const stack[10] %n1121.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 8 %n1121 = load i64, i64* %n1121.0 ;1122 push stack[10] %n1122.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1122.1 = bitcast i8* %n1122.0 to i64* store i64 %n1121, i64* %n1122.1 %n1122 = load i64, i64* %n1122.1 ;1123 pop stack[10] %n1123.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1123.1 = bitcast i8* %n1123.0 to i64* %n1123 = load i64, i64* %n1123.1 store i64 undef, i64* %n1123.1 ;1 load_RCX %n1.0 = getelementptr inbounds [16 x i64], [16 x i64]* %regs, i64 0, i64 2 %n1 = load i64, i64* %n1.0 ;21 push %n21.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 904 %n21.1 = bitcast i8* %n21.0 to i64* store i64 %n1, i64* %n21.1 %n21 = load i64, i64* %n21.1 ;2d pop %n2d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 904 %n2d.1 = bitcast i8* %n2d.0 to i64* %n2d = load i64, i64* %n2d.1 store i64 undef, i64* %n2d.1 ;9c push %n9c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n9c.1 = bitcast i8* %n9c.0 to i64* store i64 %n2d, i64* %n9c.1 %n9c = load i64, i64* %n9c.1 ;fbf pop %nfbf.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %nfbf.1 = bitcast i8* %nfbf.0 to i64* %nfbf = load i64, i64* %nfbf.1 store i64 undef, i64* %nfbf.1 ;105b push %n105b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 872 %n105b.1 = bitcast i8* %n105b.0 to i64* store i64 %nfbf, i64* %n105b.1 %n105b = load i64, i64* %n105b.1 ;1061 pop %n1061.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 872 %n1061.1 = bitcast i8* %n1061.0 to i64* %n1061 = load i64, i64* %n1061.1 store i64 undef, i64* %n1061.1 ;10bd push %n10bd.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 912 %n10bd.1 = bitcast i8* %n10bd.0 to i64* store i64 %n1061, i64* %n10bd.1 %n10bd = load i64, i64* %n10bd.1 ;10cd pop %n10cd.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 912 %n10cd.1 = bitcast i8* %n10cd.0 to i64* %n10cd = load i64, i64* %n10cd.1 store i64 undef, i64* %n10cd.1 ;1110 push %n1110.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1110.1 = bitcast i8* %n1110.0 to i64* store i64 %n10cd, i64* %n1110.1 %n1110 = load i64, i64* %n1110.1 ;1111 pop %n1111.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1111.1 = bitcast i8* %n1111.0 to i64* %n1111 = load i64, i64* %n1111.1 store i64 undef, i64* %n1111.1 ;1113 not %n1113 = xor i64 %n1111, -1 ;110f push %n110f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n110f.1 = bitcast i8* %n110f.0 to i64* store i64 %n10cd, i64* %n110f.1 %n110f = load i64, i64* %n110f.1 ;1112 pop %n1112.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1112.1 = bitcast i8* %n1112.0 to i64* %n1112 = load i64, i64* %n1112.1 store i64 undef, i64* %n1112.1 ;1114 not %n1114 = xor i64 %n1112, -1 ;1115 and %n1115 = and i64 %n1113, %n1114 ;1116 push %n1116.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1116.1 = bitcast i8* %n1116.0 to i64* store i64 %n1115, i64* %n1116.1 %n1116 = load i64, i64* %n1116.1 ;111a pop %n111a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n111a.1 = bitcast i8* %n111a.0 to i64* %n111a = load i64, i64* %n111a.1 store i64 undef, i64* %n111a.1 ;10fd push 7ff6658d0000 %n10fd.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n10fd.1 = bitcast i8* %n10fd.0 to i64* store i64 %n10c7, i64* %n10fd.1 %n10fd = load i64, i64* %n10fd.1 ;10fe pop 7ff6658d0000 %n10fe.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n10fe.1 = bitcast i8* %n10fe.0 to i64* %n10fe = load i64, i64* %n10fe.1 store i64 undef, i64* %n10fe.1 ;10fb const 14005fb08 %n10fb.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 9 %n10fb.1 = bitcast i64* %n10fb.0 to i64* %n10fb = load i64, i64* %n10fb.1 ;10fc push 14005fb08 %n10fc.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n10fc.1 = bitcast i8* %n10fc.0 to i64* store i64 %n10fb, i64* %n10fc.1 %n10fc = load i64, i64* %n10fc.1 ;10ff pop 14005fb08 %n10ff.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n10ff.1 = bitcast i8* %n10ff.0 to i64* %n10ff = load i64, i64* %n10ff.1 store i64 undef, i64* %n10ff.1 ;1100 add 7ff7a592fb08 %n1100 = add i64 %n10fe, %n10ff ;1101 push 7ff7a592fb08 %n1101.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1101.1 = bitcast i8* %n1101.0 to i64* store i64 %n1100, i64* %n1101.1 %n1101 = load i64, i64* %n1101.1 ;1105 pop 7ff7a592fb08 %n1105.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1105.1 = bitcast i8* %n1105.0 to i64* %n1105 = load i64, i64* %n1105.1 store i64 undef, i64* %n1105.1 ;1106 load_const b27fcd63c578fdf5 %n1106.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 10 %n1106.1 = bitcast i64* %n1106.0 to i64* %n1106 = load i64, i64* %n1106.1 ;1107 push b27fcd63c578fdf5 %n1107.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1107.1 = bitcast i8* %n1107.0 to i64* store i64 %n1106, i64* %n1107.1 %n1107 = load i64, i64* %n1107.1 ;1108 pop b27fcd63c578fdf5 %n1108.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1108.1 = bitcast i8* %n1108.0 to i64* %n1108 = load i64, i64* %n1108.1 store i64 undef, i64* %n1108.1 ;10f9 const 4d80329c3a87030b %n10f9.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 11 %n10f9.1 = bitcast i64* %n10f9.0 to i64* %n10f9 = load i64, i64* %n10f9.1 ;10fa push 4d80329c3a87030b %n10fa.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n10fa.1 = bitcast i8* %n10fa.0 to i64* store i64 %n10f9, i64* %n10fa.1 %n10fa = load i64, i64* %n10fa.1 ;1109 pop 4d80329c3a87030b %n1109.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1109.1 = bitcast i8* %n1109.0 to i64* %n1109 = load i64, i64* %n1109.1 store i64 undef, i64* %n1109.1 ;110a add 100 %n110a = add i64 %n1108, %n1109 ;110b push 100 %n110b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n110b.1 = bitcast i8* %n110b.0 to i64* store i64 %n110a, i64* %n110b.1 %n110b = load i64, i64* %n110b.1 ;111b pop 100 %n111b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n111b.1 = bitcast i8* %n111b.0 to i64* %n111b = load i64, i64* %n111b.1 store i64 undef, i64* %n111b.1 ;111c add %n111c = add i64 %n111a, %n111b ;111d push %n111d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n111d.1 = bitcast i8* %n111d.0 to i64* store i64 %n111c, i64* %n111d.1 %n111d = load i64, i64* %n111d.1 ;1124 load_stack %n1124.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 %n1123 %n1124.1 = bitcast i8* %n1124.0 to i64* %n1124 = load i64, i64* %n1124.1 ;1125 push %n1125.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1125.1 = bitcast i8* %n1125.0 to i64* store i64 %n1124, i64* %n1125.1 %n1125 = load i64, i64* %n1125.1 ;1126 pop %n1126.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1126.1 = bitcast i8* %n1126.0 to i64* %n1126 = load i64, i64* %n1126.1 store i64 undef, i64* %n1126.1 ;1128 not %n1128 = xor i64 %n1126, -1 ;1127 pop %n1127.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1127.1 = bitcast i8* %n1127.0 to i64* %n1127 = load i64, i64* %n1127.1 store i64 undef, i64* %n1127.1 ;1129 not %n1129 = xor i64 %n1127, -1 ;112c and.flags %n112c.3 = and i64 %n1129, %n1128 %n112c.4 = lshr i64 %n112c.3, 63 %n112c.5 = icmp eq i64 %n112c.3, 0 %n112c.6 = zext i1 %n112c.5 to i64 %n112c.7 = trunc i64 %n112c.3 to i32 %n112c.8 = and i32 %n112c.7, 255 %n112c.9 = tail call i32 @llvm.ctpop.i32(i32 %n112c.8) %n112c.10 = shl nuw nsw i32 %n112c.9, 2 %n112c.11 = and i32 %n112c.10, 4 %n112c.12 = xor i32 %n112c.11, 6 %n112c.13 = zext i32 %n112c.12 to i64 %n112c.14 = shl nuw nsw i64 %n112c.6, 6 %n112c.15 = shl nuw nsw i64 %n112c.4, 7 %n112c.16 = or i64 %n112c.15, %n112c.14 %n112c.17 = or i64 %n112c.16, %n112c.13 %n112c = or i64 %n112c.17, 512 ;112d push %n112d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n112d.1 = bitcast i8* %n112d.0 to i64* store i64 %n112c, i64* %n112d.1 %n112d = load i64, i64* %n112d.1 ;112e pop %n112e.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n112e.1 = bitcast i8* %n112e.0 to i64* %n112e = load i64, i64* %n112e.1 store i64 undef, i64* %n112e.1 ;115a push %n115a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n115a.1 = bitcast i8* %n115a.0 to i64* store i64 %n112e, i64* %n115a.1 %n115a = load i64, i64* %n115a.1 ;1172 pop %n1172.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1172.1 = bitcast i8* %n1172.0 to i64* %n1172 = load i64, i64* %n1172.1 store i64 undef, i64* %n1172.1 ;1174 not %n1174 = xor i64 %n1172, -1 ;1175 or %n1175 = or i64 %n1173, %n1174 ;1176 push %n1176.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1176.1 = bitcast i8* %n1176.0 to i64* store i64 %n1175, i64* %n1176.1 %n1176 = load i64, i64* %n1176.1 ;117d load_stack %n117d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 %n117c %n117d.1 = bitcast i8* %n117d.0 to i64* %n117d = load i64, i64* %n117d.1 ;117e push %n117e.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n117e.1 = bitcast i8* %n117e.0 to i64* store i64 %n117d, i64* %n117e.1 %n117e = load i64, i64* %n117e.1 ;117f pop %n117f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n117f.1 = bitcast i8* %n117f.0 to i64* %n117f = load i64, i64* %n117f.1 store i64 undef, i64* %n117f.1 ;1181 not %n1181 = xor i64 %n117f, -1 ;1180 pop %n1180.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1180.1 = bitcast i8* %n1180.0 to i64* %n1180 = load i64, i64* %n1180.1 store i64 undef, i64* %n1180.1 ;1182 not %n1182 = xor i64 %n1180, -1 ;1183 or %n1183 = or i64 %n1181, %n1182 ;1184 push %n1184.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1184.1 = bitcast i8* %n1184.0 to i64* store i64 %n1183, i64* %n1184.1 %n1184 = load i64, i64* %n1184.1 ;1188 pop %n1188.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1188.1 = bitcast i8* %n1188.0 to i64* %n1188 = load i64, i64* %n1188.1 store i64 undef, i64* %n1188.1 ;113f push 7ff6658d0000 %n113f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n113f.1 = bitcast i8* %n113f.0 to i64* store i64 %n10c7, i64* %n113f.1 %n113f = load i64, i64* %n113f.1 ;1140 pop 7ff6658d0000 %n1140.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1140.1 = bitcast i8* %n1140.0 to i64* %n1140 = load i64, i64* %n1140.1 store i64 undef, i64* %n1140.1 ;113d const 14005fb10 %n113d.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 12 %n113d.1 = bitcast i64* %n113d.0 to i64* %n113d = load i64, i64* %n113d.1 ;113e push 14005fb10 %n113e.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n113e.1 = bitcast i8* %n113e.0 to i64* store i64 %n113d, i64* %n113e.1 %n113e = load i64, i64* %n113e.1 ;1141 pop 14005fb10 %n1141.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1141.1 = bitcast i8* %n1141.0 to i64* %n1141 = load i64, i64* %n1141.1 store i64 undef, i64* %n1141.1 ;1142 add 7ff7a592fb10 %n1142 = add i64 %n1140, %n1141 ;1143 push 7ff7a592fb10 %n1143.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1143.1 = bitcast i8* %n1143.0 to i64* store i64 %n1142, i64* %n1143.1 %n1143 = load i64, i64* %n1143.1 ;1147 pop 7ff7a592fb10 %n1147.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1147.1 = bitcast i8* %n1147.0 to i64* %n1147 = load i64, i64* %n1147.1 store i64 undef, i64* %n1147.1 ;1148 load_const 5b1c68562c1b58c0 %n1148.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 13 %n1148.1 = bitcast i64* %n1148.0 to i64* %n1148 = load i64, i64* %n1148.1 ;1149 push 5b1c68562c1b58c0 %n1149.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1149.1 = bitcast i8* %n1149.0 to i64* store i64 %n1148, i64* %n1149.1 %n1149 = load i64, i64* %n1149.1 ;114a pop 5b1c68562c1b58c0 %n114a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n114a.1 = bitcast i8* %n114a.0 to i64* %n114a = load i64, i64* %n114a.1 store i64 undef, i64* %n114a.1 ;113b const a4e397a9d3e49f2a %n113b.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 14 %n113b.1 = bitcast i64* %n113b.0 to i64* %n113b = load i64, i64* %n113b.1 ;113c push a4e397a9d3e49f2a %n113c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n113c.1 = bitcast i8* %n113c.0 to i64* store i64 %n113b, i64* %n113c.1 %n113c = load i64, i64* %n113c.1 ;114b pop a4e397a9d3e49f2a %n114b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n114b.1 = bitcast i8* %n114b.0 to i64* %n114b = load i64, i64* %n114b.1 store i64 undef, i64* %n114b.1 ;114c add fffffffffffff7ea %n114c = add i64 %n114a, %n114b ;114d push fffffffffffff7ea %n114d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n114d.1 = bitcast i8* %n114d.0 to i64* store i64 %n114c, i64* %n114d.1 %n114d = load i64, i64* %n114d.1 ;1151 pop fffffffffffff7ea %n1151.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1151.1 = bitcast i8* %n1151.0 to i64* %n1151 = load i64, i64* %n1151.1 store i64 undef, i64* %n1151.1 ;1153 not 815 %n1153 = xor i64 %n1151, -1 ;111e add.flags %n111e.3 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %n111a, i64 %n111b) %n111e.4 = extractvalue { i64, i1 } %n111e.3, 1 %n111e.5 = extractvalue { i64, i1 } %n111e.3, 0 %n111e.6 = zext i1 %n111e.4 to i64 %n111e.7 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %n111a, i64 %n111b) %n111e.8 = extractvalue { i64, i1 } %n111e.7, 1 %n111e.9 = zext i1 %n111e.8 to i64 %n111e.10 = lshr i64 %n111e.5, 63 %n111e.11 = xor i64 %n111b, %n111a %n111e.12 = xor i64 %n111e.11, %n111e.5 %n111e.13 = and i64 %n111e.12, 16 %n111e.14 = icmp eq i64 %n111e.5, 0 %n111e.15 = zext i1 %n111e.14 to i64 %n111e.16 = trunc i64 %n111e.5 to i32 %n111e.17 = and i32 %n111e.16, 255 %n111e.18 = tail call i32 @llvm.ctpop.i32(i32 %n111e.17) %n111e.19 = shl nuw nsw i32 %n111e.18, 2 %n111e.20 = and i32 %n111e.19, 4 %n111e.21 = xor i32 %n111e.20, 4 %n111e.22 = zext i32 %n111e.21 to i64 %n111e.23 = shl nuw nsw i64 %n111e.15, 6 %n111e.24 = shl nuw nsw i64 %n111e.10, 7 %n111e.25 = shl nuw nsw i64 %n111e.9, 11 %n111e.26 = or i64 %n111e.24, %n111e.6 %n111e.27 = or i64 %n111e.26, %n111e.25 %n111e.28 = or i64 %n111e.27, %n111e.13 %n111e.29 = or i64 %n111e.28, %n111e.23 %n111e.30 = or i64 %n111e.29, %n111e.22 %n111e = or i64 %n111e.30, 514 ;111f push %n111f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n111f.1 = bitcast i8* %n111f.0 to i64* store i64 %n111e, i64* %n111f.1 %n111f = load i64, i64* %n111f.1 ;1120 pop %n1120.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1120.1 = bitcast i8* %n1120.0 to i64* %n1120 = load i64, i64* %n1120.1 store i64 undef, i64* %n1120.1 ;1131 push %n1131.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1131.1 = bitcast i8* %n1131.0 to i64* store i64 %n1120, i64* %n1131.1 %n1131 = load i64, i64* %n1131.1 ;1132 pop %n1132.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1132.1 = bitcast i8* %n1132.0 to i64* %n1132 = load i64, i64* %n1132.1 store i64 undef, i64* %n1132.1 ;1134 not %n1134 = xor i64 %n1132, -1 ;1130 push %n1130.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1130.1 = bitcast i8* %n1130.0 to i64* store i64 %n1120, i64* %n1130.1 %n1130 = load i64, i64* %n1130.1 ;1133 pop %n1133.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1133.1 = bitcast i8* %n1133.0 to i64* %n1133 = load i64, i64* %n1133.1 store i64 undef, i64* %n1133.1 ;1135 not %n1135 = xor i64 %n1133, -1 ;1136 and %n1136 = and i64 %n1134, %n1135 ;1137 push %n1137.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1137.1 = bitcast i8* %n1137.0 to i64* store i64 %n1136, i64* %n1137.1 %n1137 = load i64, i64* %n1137.1 ;1152 pop %n1152.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1152.1 = bitcast i8* %n1152.0 to i64* %n1152 = load i64, i64* %n1152.1 store i64 undef, i64* %n1152.1 ;1154 not %n1154 = xor i64 %n1152, -1 ;1155 and %n1155 = and i64 %n1153, %n1154 ;1156 push %n1156.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1156.1 = bitcast i8* %n1156.0 to i64* store i64 %n1155, i64* %n1156.1 %n1156 = load i64, i64* %n1156.1 ;1189 pop %n1189.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1189.1 = bitcast i8* %n1189.0 to i64* %n1189 = load i64, i64* %n1189.1 store i64 undef, i64* %n1189.1 ;118a add %n118a = add i64 %n1188, %n1189 ;118b push %n118b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n118b.1 = bitcast i8* %n118b.0 to i64* store i64 %n118a, i64* %n118b.1 %n118b = load i64, i64* %n118b.1 ;118f pop %n118f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n118f.1 = bitcast i8* %n118f.0 to i64* %n118f = load i64, i64* %n118f.1 store i64 undef, i64* %n118f.1 ;11b7 push %n11b7.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 944 %n11b7.1 = bitcast i8* %n11b7.0 to i64* store i64 %n118f, i64* %n11b7.1 %n11b7 = load i64, i64* %n11b7.1 ;11cf pop %n11cf.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 944 %n11cf.1 = bitcast i8* %n11cf.0 to i64* %n11cf = load i64, i64* %n11cf.1 store i64 undef, i64* %n11cf.1 ;123b push %n123b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n123b.1 = bitcast i8* %n123b.0 to i64* store i64 %n11cf, i64* %n123b.1 %n123b = load i64, i64* %n123b.1 ;1253 pop %n1253.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n1253.1 = bitcast i8* %n1253.0 to i64* %n1253 = load i64, i64* %n1253.1 store i64 undef, i64* %n1253.1 ;1255 not %n1255 = xor i64 %n1253, -1 ;1256 and %n1256 = and i64 %n1254, %n1255 ;1257 push %n1257.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n1257.1 = bitcast i8* %n1257.0 to i64* store i64 %n1256, i64* %n1257.1 %n1257 = load i64, i64* %n1257.1 ;125b pop %n125b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n125b.1 = bitcast i8* %n125b.0 to i64* %n125b = load i64, i64* %n125b.1 store i64 undef, i64* %n125b.1 ;1229 push 7ff6658d0000 %n1229.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 974 %n1229.1 = bitcast i8* %n1229.0 to i64* store i64 %n11c5, i64* %n1229.1 %n1229 = load i64, i64* %n1229.1 ;122a pop 7ff6658d0000 %n122a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 974 %n122a.1 = bitcast i8* %n122a.0 to i64* %n122a = load i64, i64* %n122a.1 store i64 undef, i64* %n122a.1 ;1227 const 140047e57 %n1227.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 15 %n1227.1 = bitcast i64* %n1227.0 to i64* %n1227 = load i64, i64* %n1227.1 ;1228 push 140047e57 %n1228.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n1228.1 = bitcast i8* %n1228.0 to i64* store i64 %n1227, i64* %n1228.1 %n1228 = load i64, i64* %n1228.1 ;122b pop 140047e57 %n122b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n122b.1 = bitcast i8* %n122b.0 to i64* %n122b = load i64, i64* %n122b.1 store i64 undef, i64* %n122b.1 ;122c add 7ff7a5917e57 %n122c = add i64 %n122a, %n122b ;122d push 7ff7a5917e57 %n122d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n122d.1 = bitcast i8* %n122d.0 to i64* store i64 %n122c, i64* %n122d.1 %n122d = load i64, i64* %n122d.1 ;1231 pop 7ff7a5917e57 %n1231.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 982 %n1231.1 = bitcast i8* %n1231.0 to i64* %n1231 = load i64, i64* %n1231.1 store i64 undef, i64* %n1231.1 ;1232 load_const.2 b %n1232.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 16 %n1232.1 = bitcast i64* %n1232.0 to i16* %n1232 = load i16, i16* %n1232.1 ;1233 push.2 b %n1233.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 988 %n1233.1 = bitcast i8* %n1233.0 to i16* store i16 %n1232, i16* %n1233.1 %n1233 = load i16, i16* %n1233.1 ;1234 pop.2 b %n1234.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 988 %n1234.1 = bitcast i8* %n1234.0 to i16* %n1234 = load i16, i16* %n1234.1 store i16 undef, i16* %n1234.1 ;1225 const.2 fff8 %n1225.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 17 %n1225.1 = bitcast i64* %n1225.0 to i16* %n1225 = load i16, i16* %n1225.1 ;1226 push.2 fff8 %n1226.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 990 %n1226.1 = bitcast i8* %n1226.0 to i16* store i16 %n1225, i16* %n1226.1 %n1226 = load i16, i16* %n1226.1 ;1235 pop.2 fff8 %n1235.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 990 %n1235.1 = bitcast i8* %n1235.0 to i16* %n1235 = load i16, i16* %n1235.1 store i16 undef, i16* %n1235.1 ;1236 add.2 3 %n1236 = add i16 %n1234, %n1235 ;1237 push.2 3 %n1237.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 990 %n1237.1 = bitcast i8* %n1237.0 to i16* store i16 %n1236, i16* %n1237.1 %n1237 = load i16, i16* %n1237.1 ;125c pop.2 3 %n125c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 990 %n125c.1 = bitcast i8* %n125c.0 to i16* %n125c = load i16, i16* %n125c.1 store i16 undef, i16* %n125c.1 ;125d trunc.1 3 %n125d = trunc i16 %n125c to i8 ;125e shr %n125e.0 = zext i8 %n125d to i64 %n125e = lshr i64 %n125b, %n125e.0 ;125f push %n125f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n125f.1 = bitcast i8* %n125f.0 to i64* store i64 %n125e, i64* %n125f.1 %n125f = load i64, i64* %n125f.1 ;1263 pop %n1263.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1263.1 = bitcast i8* %n1263.0 to i64* %n1263 = load i64, i64* %n1263.1 store i64 undef, i64* %n1263.1 ;1223 const stack[18] %n1223.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 4 %n1223 = load i64, i64* %n1223.0 ;1224 push stack[18] %n1224.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1224.1 = bitcast i8* %n1224.0 to i64* store i64 %n1223, i64* %n1224.1 %n1224 = load i64, i64* %n1224.1 ;1264 pop stack[18] %n1264.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1264.1 = bitcast i8* %n1264.0 to i64* %n1264 = load i64, i64* %n1264.1 store i64 undef, i64* %n1264.1 ;1265 add %n1265 = add i64 %n1263, %n1264 ;1266 push %n1266.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1266.1 = bitcast i8* %n1266.0 to i64* store i64 %n1265, i64* %n1266.1 %n1266 = load i64, i64* %n1266.1 ;126a pop %n126a.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n126a.1 = bitcast i8* %n126a.0 to i64* %n126a = load i64, i64* %n126a.1 store i64 undef, i64* %n126a.1 ;1211 push 7ff6658d0000 %n1211.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1211.1 = bitcast i8* %n1211.0 to i64* store i64 %n11c5, i64* %n1211.1 %n1211 = load i64, i64* %n1211.1 ;1212 pop 7ff6658d0000 %n1212.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 984 %n1212.1 = bitcast i8* %n1212.0 to i64* %n1212 = load i64, i64* %n1212.1 store i64 undef, i64* %n1212.1 ;120f const 14005fb38 %n120f.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 18 %n120f.1 = bitcast i64* %n120f.0 to i64* %n120f = load i64, i64* %n120f.1 ;1210 push 14005fb38 %n1210.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1210.1 = bitcast i8* %n1210.0 to i64* store i64 %n120f, i64* %n1210.1 %n1210 = load i64, i64* %n1210.1 ;1213 pop 14005fb38 %n1213.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1213.1 = bitcast i8* %n1213.0 to i64* %n1213 = load i64, i64* %n1213.1 store i64 undef, i64* %n1213.1 ;1214 add 7ff7a592fb38 %n1214 = add i64 %n1212, %n1213 ;1215 push 7ff7a592fb38 %n1215.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1215.1 = bitcast i8* %n1215.0 to i64* store i64 %n1214, i64* %n1215.1 %n1215 = load i64, i64* %n1215.1 ;1219 pop 7ff7a592fb38 %n1219.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n1219.1 = bitcast i8* %n1219.0 to i64* %n1219 = load i64, i64* %n1219.1 store i64 undef, i64* %n1219.1 ;121a load_const a67e912cd179a1ba %n121a.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 19 %n121a.1 = bitcast i64* %n121a.0 to i64* %n121a = load i64, i64* %n121a.1 ;121b push a67e912cd179a1ba %n121b.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n121b.1 = bitcast i8* %n121b.0 to i64* store i64 %n121a, i64* %n121b.1 %n121b = load i64, i64* %n121b.1 ;121c pop a67e912cd179a1ba %n121c.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n121c.1 = bitcast i8* %n121c.0 to i64* %n121c = load i64, i64* %n121c.1 store i64 undef, i64* %n121c.1 ;120d const 59816ed46e8e2c8c %n120d.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 20 %n120d.1 = bitcast i64* %n120d.0 to i64* %n120d = load i64, i64* %n120d.1 ;120e push 59816ed46e8e2c8c %n120e.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n120e.1 = bitcast i8* %n120e.0 to i64* store i64 %n120d, i64* %n120e.1 %n120e = load i64, i64* %n120e.1 ;121d pop 59816ed46e8e2c8c %n121d.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n121d.1 = bitcast i8* %n121d.0 to i64* %n121d = load i64, i64* %n121d.1 store i64 undef, i64* %n121d.1 ;121e add 14007ce46 %n121e = add i64 %n121c, %n121d ;121f push 14007ce46 %n121f.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n121f.1 = bitcast i8* %n121f.0 to i64* store i64 %n121e, i64* %n121f.1 %n121f = load i64, i64* %n121f.1 ;11fb push 7ff6658d0000 %n11fb.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n11fb.1 = bitcast i8* %n11fb.0 to i64* store i64 %n11c5, i64* %n11fb.1 %n11fb = load i64, i64* %n11fb.1 ;11fc pop 7ff6658d0000 %n11fc.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 992 %n11fc.1 = bitcast i8* %n11fc.0 to i64* %n11fc = load i64, i64* %n11fc.1 store i64 undef, i64* %n11fc.1 ;11f9 const 14005fb30 %n11f9.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 21 %n11f9.1 = bitcast i64* %n11f9.0 to i64* %n11f9 = load i64, i64* %n11f9.1 ;11fa push 14005fb30 %n11fa.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n11fa.1 = bitcast i8* %n11fa.0 to i64* store i64 %n11f9, i64* %n11fa.1 %n11fa = load i64, i64* %n11fa.1 ;11fd pop 14005fb30 %n11fd.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n11fd.1 = bitcast i8* %n11fd.0 to i64* %n11fd = load i64, i64* %n11fd.1 store i64 undef, i64* %n11fd.1 ;11fe add 7ff7a592fb30 %n11fe = add i64 %n11fc, %n11fd ;11ff push 7ff7a592fb30 %n11ff.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n11ff.1 = bitcast i8* %n11ff.0 to i64* store i64 %n11fe, i64* %n11ff.1 %n11ff = load i64, i64* %n11ff.1 ;1203 pop 7ff7a592fb30 %n1203.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1203.1 = bitcast i8* %n1203.0 to i64* %n1203 = load i64, i64* %n1203.1 store i64 undef, i64* %n1203.1 ;1204 load_const 4870f0003f77c096 %n1204.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 22 %n1204.1 = bitcast i64* %n1204.0 to i64* %n1204 = load i64, i64* %n1204.1 ;1205 push 4870f0003f77c096 %n1205.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1205.1 = bitcast i8* %n1205.0 to i64* store i64 %n1204, i64* %n1205.1 %n1205 = load i64, i64* %n1205.1 ;1206 pop 4870f0003f77c096 %n1206.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1000 %n1206.1 = bitcast i8* %n1206.0 to i64* %n1206 = load i64, i64* %n1206.1 store i64 undef, i64* %n1206.1 ;11f7 const b78f100100974a3e %n11f7.0 = getelementptr inbounds [24 x i64], [24 x i64]* @consts, i64 0, i64 23 %n11f7.1 = bitcast i64* %n11f7.0 to i64* %n11f7 = load i64, i64* %n11f7.1 ;11f8 push b78f100100974a3e %n11f8.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n11f8.1 = bitcast i8* %n11f8.0 to i64* store i64 %n11f7, i64* %n11f8.1 %n11f8 = load i64, i64* %n11f8.1 ;1207 pop b78f100100974a3e %n1207.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1207.1 = bitcast i8* %n1207.0 to i64* %n1207 = load i64, i64* %n1207.1 store i64 undef, i64* %n1207.1 ;1208 add 1400f0ad4 %n1208 = add i64 %n1206, %n1207 ;1209 push 1400f0ad4 %n1209.0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %stack, i64 0, i64 1008 %n1209.1 = bitcast i8* %n1209.0 to i64* store i64 %n1208, i64* %n1209.1 %n1209 = load i64, i64* %n1209.1 ;126b loadcc %n126b.0 = icmp eq i64 %n126a, 1000 %n126b = zext i1 %n126b.0 to i64 ret i64 %n126b }
llvm source #2
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-windows-msvc19.15.26726" define i64 @lol_func([16 x i64]* nocapture readonly %regs) local_unnamed_addr #0 { %n1.0 = getelementptr inbounds [16 x i64], [16 x i64]* %regs, i64 0, i64 2 %n1 = load i64, i64* %n1.0, align 8 %n112c.5 = icmp eq i64 %n1, 256 %n126b = zext i1 %n112c.5 to i64 ret i64 %n126b } attributes #0 = { norecurse nounwind readonly }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
About the author
Statistics
Changelog
Version tree