Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
Clojure
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Yul (Solidity IR)
Zig
Javascript
GIMPLE
Ygen
sway
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 19.1.0
clang 20.1.0
clang 21.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
hexagon-clang 16.0.5
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 19.1.0
llc 20.1.0
llc 21.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 19.1.0
opt 20.1.0
opt 21.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
; *** IR Dump Before 21-InstCombinePass on julia_perf_sum_4573 *** ; ModuleID = '../regression.ll' source_filename = "perf_sum" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128-ni:10:11:12:13" target triple = "x86_64-unknown-linux-gnu" define swiftcc float @julia_perf_sum_4573(ptr nonnull swiftself %pgcstack_arg, ptr addrspace(10) noundef nonnull align 8 dereferenceable(24) %"X::Array") #0 !dbg !5 { top: %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.dbg.declare(metadata ptr addrspace(10) %"X::Array", metadata !19, metadata !DIExpression()), !dbg !20 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -112 %ptls_field = getelementptr inbounds i8, ptr %current_task1, i32 128 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !21 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load ptr, ptr %0, align 8, !tbaa !25, !invariant.load !11 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint), !dbg !20 fence syncscope("singlethread") seq_cst %1 = addrspacecast ptr addrspace(10) %"X::Array" to ptr addrspace(11), !dbg !27 %"X::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %1, i32 16, !dbg !27 %"X::Array.size.sroa.0.0.copyload" = load i64, ptr addrspace(11) %"X::Array.size_ptr", align 8, !dbg !27, !tbaa !37, !alias.scope !38, !noalias !42 %2 = icmp slt i64 0, %"X::Array.size.sroa.0.0.copyload", !dbg !46 %3 = xor i1 %2, true, !dbg !49 br i1 %3, label %L41, label %L8, !dbg !49 L8: ; preds = %top, %L12 %value_phi = phi float [ %value_phi6, %L12 ], [ 0.000000e+00, %top ] %value_phi2 = phi i64 [ %23, %L12 ], [ 0, %top ] %4 = icmp slt i64 %value_phi2, %"X::Array.size.sroa.0.0.copyload", !dbg !50 %5 = xor i1 %4, true, !dbg !51 br i1 %5, label %L41, label %L12, !dbg !51 L12: ; preds = %L8 %6 = add i64 %value_phi2, 1, !dbg !52 %7 = addrspacecast ptr addrspace(10) %"X::Array" to ptr addrspace(11), !dbg !57 %8 = getelementptr inbounds { i64, ptr addrspace(10) }, ptr addrspace(11) %7, i32 0, i32 0, !dbg !57 %memoryref_data = load i64, ptr addrspace(11) %8, align 8, !dbg !57, !tbaa !59, !alias.scope !62, !noalias !63 %9 = getelementptr inbounds { i64, ptr addrspace(10) }, ptr addrspace(11) %7, i32 0, i32 1, !dbg !57 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %9, align 8, !dbg !57, !tbaa !59, !alias.scope !62, !noalias !63, !dereferenceable_or_null !64, !align !65 %memoryref_offset = sub i64 %6, 1, !dbg !57 %"memoryref_data+offset" = add i64 %memoryref_data, %memoryref_offset, !dbg !57 %10 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !57 %11 = getelementptr inbounds { i64, ptr }, ptr addrspace(11) %10, i32 0, i32 0, !dbg !57 %memory_len = load i64, ptr addrspace(11) %11, align 8, !dbg !57, !tbaa !66, !range !68, !alias.scope !62, !noalias !63 %12 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !57 %memory_data_ptr = getelementptr inbounds { i64, ptr }, ptr addrspace(11) %12, i32 0, i32 1, !dbg !57 %13 = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !57, !tbaa !25, !invariant.load !11, !alias.scope !69, !noalias !70, !nonnull !11 %memory_data = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %13), !dbg !57 %14 = getelementptr inbounds [1 x i32], ptr addrspace(13) %memory_data, i64 %memory_len, !dbg !57 %15 = getelementptr inbounds [1 x i32], ptr addrspace(13) %memory_data, i64 %"memoryref_data+offset", !dbg !57 %16 = getelementptr inbounds i8, ptr addrspace(13) %14, i64 %"memoryref_data+offset", !dbg !57 %17 = load i8, ptr addrspace(13) %16, align 1, !dbg !57, !tbaa !71, !range !73, !alias.scope !62, !noalias !63 %18 = add nuw i8 1, %17, !dbg !57 %immutable_union.sroa.0.0.copyload = load float, ptr addrspace(13) %15, align 4, !dbg !57, !tbaa !74, !alias.scope !77, !noalias !78 %19 = and i8 %18, 127, !dbg !79 %exactly_isa = icmp eq i8 %19, 1, !dbg !79 %20 = xor i1 %exactly_isa, true, !dbg !79 %21 = xor i1 %20, true, !dbg !79 %22 = fadd float %value_phi, %immutable_union.sroa.0.0.copyload, !dbg !79 %value_phi6 = select i1 %21, float %value_phi, float %22, !dbg !79 %23 = add i64 %value_phi2, 1, !dbg !82 br label %L8, !dbg !84, !llvm.loop !85 L41: ; preds = %L8, %top %value_phi7 = phi float [ 0.000000e+00, %top ], [ %value_phi, %L8 ] ret float %value_phi7, !dbg !86 } ; Function Attrs: noinline optnone define nonnull ptr addrspace(10) @jfptr_perf_sum_4574(ptr addrspace(10) %"function::Core.Function", ptr noalias nocapture noundef readonly %"args::Any[]", i32 %"nargs::UInt32") #1 { top: %pgcstack = call ptr @julia.get_pgcstack() %0 = getelementptr inbounds i8, ptr %"args::Any[]", i32 0 %1 = load ptr addrspace(10), ptr %0, align 8, !tbaa !25, !invariant.load !11, !alias.scope !69, !noalias !70, !nonnull !11, !dereferenceable !87, !align !65 %2 = call swiftcc float @julia_perf_sum_4573(ptr nonnull swiftself %pgcstack, ptr addrspace(10) %1) %box_Float32 = call ptr addrspace(10) @ijl_box_float32(float %2) ret ptr addrspace(10) %box_Float32 } declare ptr @julia.get_pgcstack() #2 ; Function Attrs: nounwind willreturn memory(inaccessiblemem: readwrite) declare nonnull align 8 dereferenceable(4) ptr addrspace(10) @ijl_box_float32(float) #3 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare void @llvm.dbg.declare(metadata, metadata, metadata) #4 ; Function Attrs: memory(argmem: readwrite, inaccessiblemem: readwrite) declare void @julia.safepoint(ptr) #5 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p11.i64(ptr noalias nocapture writeonly, ptr addrspace(11) noalias nocapture readonly, i64, i1 immarg) #6 ; Function Attrs: norecurse nosync nounwind speculatable willreturn memory(none) declare noundef nonnull ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) nocapture noundef nonnull readnone, ptr noundef nonnull readnone) #7 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p13.i64(ptr noalias nocapture writeonly, ptr addrspace(13) noalias nocapture readonly, i64, i1 immarg) #6 ; Function Attrs: noreturn declare swiftcc void @j_throw_boundserror_4575(ptr nonnull swiftself, ptr addrspace(10), ptr addrspace(11) nocapture readonly) #8 ; Function Attrs: cold noreturn nounwind memory(inaccessiblemem: write) declare void @llvm.trap() #9 attributes #0 = { "frame-pointer"="all" "julia.fsig"="perf_sum(Array{Union{Nothing, Float32}, 1})" "probe-stack"="inline-asm" "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #1 = { noinline optnone "frame-pointer"="all" "probe-stack"="inline-asm" "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #2 = { "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #3 = { nounwind willreturn memory(inaccessiblemem: readwrite) "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #5 = { memory(argmem: readwrite, inaccessiblemem: readwrite) "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #7 = { norecurse nosync nounwind speculatable willreturn memory(none) "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #8 = { noreturn "frame-pointer"="all" "julia.fsig"="throw_boundserror(Array{Union{Nothing, Float32}, 1}, Tuple{Int64})" "probe-stack"="inline-asm" "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } attributes #9 = { cold noreturn nounwind memory(inaccessiblemem: write) "target-cpu"="znver1" "target-features"="+prfchw,-cldemote,+avx,+aes,+sahf,+pclmul,-xop,+crc32,+xsaves,-avx512fp16,-usermsr,-sm4,+sse4.1,-avx512ifma,+xsave,-avx512pf,+sse4.2,-tsxldtrk,-ptwrite,-widekl,-sm3,-invpcid,+64bit,+xsavec,-avx10.1-512,-avx512vpopcntdq,+cmov,-avx512vp2intersect,-avx512cd,+movbe,-avxvnniint8,-avx512er,-amx-int8,-kl,-avx10.1-256,-sha512,-avxvnni,-rtm,+adx,+avx2,-hreset,-movdiri,-serialize,-vpclmulqdq,-avx512vl,-uintr,+clflushopt,-raoint,-cmpccxadd,+bmi,-amx-tile,+sse,-gfni,-avxvnniint16,-amx-fp16,+xsaveopt,+rdrnd,-avx512f,-amx-bf16,-avx512bf16,-avx512vnni,+cx8,-avx512bw,+sse3,-pku,+fsgsbase,+clzero,+mwaitx,-lwp,+lzcnt,+sha,-movdir64b,-wbnoinvd,-enqcmd,-prefetchwt1,-avxneconvert,-tbm,-pconfig,-amx-complex,+ssse3,+cx16,+bmi2,+fma,+popcnt,-avxifma,+f16c,-avx512bitalg,-rdpru,-clwb,+mmx,+sse2,+rdseed,-avx512vbmi2,-prefetchi,-rdpid,-fma4,-avx512vbmi,-shstk,-vaes,-waitpkg,-sgx,+fxsr,-avx512dq,+sse4a" } !llvm.module.flags = !{!0, !1, !2} !llvm.dbg.cu = !{!3} !0 = !{i32 2, !"Dwarf Version", i32 4} !1 = !{i32 2, !"Debug Info Version", i32 3} !2 = !{i32 2, !"julia.debug_level", i32 2} !3 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !4, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: NoDebug, nameTableKind: GNU) !4 = !DIFile(filename: "julia", directory: ".") !5 = distinct !DISubprogram(name: "perf_sum", linkageName: "julia_perf_sum_4573", scope: null, file: !6, line: 1, type: !7, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3, retainedNodes: !17) !6 = !DIFile(filename: "REPL[3]", directory: ".") !7 = !DISubroutineType(types: !8) !8 = !{!9, !10, !12} !9 = !DIBasicType(name: "Float32", size: 32, encoding: DW_ATE_unsigned) !10 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "#perf_sum", align: 8, elements: !11, runtimeLang: DW_LANG_Julia, identifier: "128839042575760") !11 = !{} !12 = !DIDerivedType(tag: DW_TAG_typedef, name: "Array", baseType: !13) !13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 64, align: 64) !14 = !DICompositeType(tag: DW_TAG_structure_type, name: "jl_value_t", file: !15, line: 71, align: 64, elements: !16) !15 = !DIFile(filename: "julia.h", directory: "") !16 = !{!13} !17 = !{!18, !19} !18 = !DILocalVariable(name: "#self#", arg: 1, scope: !5, file: !6, line: 1, type: !10) !19 = !DILocalVariable(name: "X", arg: 2, scope: !5, file: !6, line: 1, type: !12) !20 = !DILocation(line: 1, scope: !5) !21 = !{!22, !22, i64 0} !22 = !{!"jtbaa_gcframe", !23, i64 0} !23 = !{!"jtbaa", !24, i64 0} !24 = !{!"jtbaa"} !25 = !{!26, !26, i64 0, i64 1} !26 = !{!"jtbaa_const", !23, i64 0} !27 = !DILocation(line: 11, scope: !28, inlinedAt: !31) !28 = distinct !DISubprogram(name: "length;", linkageName: "length", scope: !29, file: !29, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !29 = !DIFile(filename: "essentials.jl", directory: ".") !30 = !DISubroutineType(types: !11) !31 = !DILocation(line: 51, scope: !32, inlinedAt: !34) !32 = distinct !DISubprogram(name: "simd_inner_length;", linkageName: "simd_inner_length", scope: !33, file: !33, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !33 = !DIFile(filename: "simdloop.jl", directory: ".") !34 = !DILocation(line: 71, scope: !35, inlinedAt: !36) !35 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !33, file: !33, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !36 = !DILocation(line: 3, scope: !5) !37 = !{!23, !23, i64 0} !38 = !{!39, !41} !39 = !{!"jnoalias_typemd", !40} !40 = !{!"jnoalias"} !41 = !{!"jnoalias_stack", !40} !42 = !{!43, !44, !45} !43 = !{!"jnoalias_gcframe", !40} !44 = !{!"jnoalias_data", !40} !45 = !{!"jnoalias_const", !40} !46 = !DILocation(line: 83, scope: !47, inlinedAt: !49) !47 = distinct !DISubprogram(name: "<;", linkageName: "<", scope: !48, file: !48, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !48 = !DIFile(filename: "int.jl", directory: ".") !49 = !DILocation(line: 72, scope: !35, inlinedAt: !36) !50 = !DILocation(line: 83, scope: !47, inlinedAt: !51) !51 = !DILocation(line: 75, scope: !35, inlinedAt: !36) !52 = !DILocation(line: 87, scope: !53, inlinedAt: !54) !53 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !48, file: !48, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !54 = !DILocation(line: 54, scope: !55, inlinedAt: !56) !55 = distinct !DISubprogram(name: "simd_index;", linkageName: "simd_index", scope: !33, file: !33, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !56 = !DILocation(line: 76, scope: !35, inlinedAt: !36) !57 = !DILocation(line: 910, scope: !58, inlinedAt: !54) !58 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !29, file: !29, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !59 = !{!60, !60, i64 0} !60 = !{!"jtbaa_arrayptr", !61, i64 0} !61 = !{!"jtbaa_array", !23, i64 0} !62 = !{!39} !63 = !{!43, !41, !44, !45} !64 = !{i64 16} !65 = !{i64 8} !66 = !{!67, !67, i64 0, i64 1} !67 = !{!"jtbaa_memorylen", !61, i64 0} !68 = !{i64 0, i64 2305843009213693951} !69 = !{!45} !70 = !{!43, !41, !44, !39} !71 = !{!72, !72, i64 0} !72 = !{!"jtbaa_arrayselbyte", !61, i64 0} !73 = !{i8 0, i8 2} !74 = !{!75, !75, i64 0} !75 = !{!"jtbaa_arraybuf", !76, i64 0} !76 = !{!"jtbaa_data", !23, i64 0} !77 = !{!44} !78 = !{!43, !41, !39, !45} !79 = !DILocation(line: 4, scope: !80, inlinedAt: !81) !80 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !6, file: !6, type: !30, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !3) !81 = !DILocation(line: 77, scope: !35, inlinedAt: !36) !82 = !DILocation(line: 87, scope: !53, inlinedAt: !83) !83 = !DILocation(line: 78, scope: !35, inlinedAt: !36) !84 = !DILocation(line: 80, scope: !35, inlinedAt: !36) !85 = distinct !{!85, !"julia.simdloop"} !86 = !DILocation(line: 84, scope: !35, inlinedAt: !36) !87 = !{i64 24}
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree