Created
November 12, 2018 13:44
-
-
Save ChrisRackauckas/340094507c4370c0a4446edb6cb0691c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Function muladd2! | |
; Location: C:\Users\Chris Rackauckas\OneDrive\Computer\Desktop\test.jl:21 | |
; Function Attrs: uwtable | |
define nonnull %jl_value_t addrspace(10)* @"japi1_muladd2!_35788"(%jl_value_t addrspace(10)*, %jl_va | |
lue_t addrspace(10)**, i32) #0 { | |
top: | |
%gcframe = alloca %jl_value_t addrspace(10)*, i32 3 %3 = bitcast %jl_value_t addrspace(10)** %gcframe to i8* | |
call void @llvm.memset.p0i8.i32(i8* %3, i8 0, i32 24, i32 0, i1 false) | |
%4 = alloca %jl_value_t addrspace(10)**, align 8 | |
store volatile %jl_value_t addrspace(10)** %1, %jl_value_t addrspace(10)*** %4, align 8 | |
%5 = call %jl_value_t*** inttoptr (i64 1801310064 to %jl_value_t*** ()*)() #5 | |
%6 = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %gcframe, i32 0 | |
%7 = bitcast %jl_value_t addrspace(10)** %6 to i64* store i64 2, i64* %7 | |
%8 = getelementptr %jl_value_t**, %jl_value_t*** %5, i32 0 | |
%9 = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %gcframe, i32 1 | |
%10 = bitcast %jl_value_t addrspace(10)** %9 to %jl_value_t*** | |
%11 = load %jl_value_t**, %jl_value_t*** %8 | |
store %jl_value_t** %11, %jl_value_t*** %10 | |
%12 = bitcast %jl_value_t*** %8 to %jl_value_t addrspace(10)*** | |
store %jl_value_t addrspace(10)** %gcframe, %jl_value_t addrspace(10)*** %12 | |
%13 = load %jl_value_t addrspace(10)*, %jl_value_taddrspace(10)** %1, align 8 | |
%14 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, i64 3 | |
%15 = load %jl_value_t addrspace(10)*, %jl_value_taddrspace(10)** %14, align 8 | |
; Location: C:\Users\Chris Rackauckas\OneDrive\Computer\Desktop\test.jl:22 | |
; Function eachindex; { | |
; Location: abstractarray.jl:165 | |
; Function axes1; { | |
; Location: abstractarray.jl:93 | |
; Function axes; { | |
; Location: abstractarray.jl:75 | |
; Function size; { | |
; Location: array.jl:155 | |
%16 = addrspacecast %jl_value_t addrspace(10)* %13to %jl_value_t addrspace(11)* | |
%17 = bitcast %jl_value_t addrspace(11)* %16 to %jl_value_t addrspace(10)* addrspace(11)* | |
%18 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* | |
%17, i64 3 | |
%19 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %18 to i64 addrspace(11)* | |
%20 = load i64, i64 addrspace(11)* %19, align 8 | |
;} | |
; Function map; { | |
; Location: tuple.jl:162 | |
; Function Type; { | |
; Location: range.jl:298 | |
; Function Type; { | |
; Location: range.jl:289 | |
; Function max; { | |
; Location: promotion.jl:436 | |
%21 = icmp sgt i64 %20, 0 | |
%22 = select i1 %21, i64 %20, i64 0 | |
;}}}}}}} | |
br i1 %21, label %L9.L14_crit_edge, label %L52 | |
L9.L14_crit_edge: ; preds = %top | |
%23 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, i64 1 | |
%24 = load %jl_value_t addrspace(10)*, %jl_value_taddrspace(10)** %23, align 8 | |
; Location: C:\Users\Chris Rackauckas\OneDrive\Computer\Desktop\test.jl:21 | |
; Function getproperty; { | |
; Location: sysimg.jl:18 | |
%25 = addrspacecast %jl_value_t addrspace(10)* %24to %jl_value_t addrspace(11)* | |
%26 = bitcast %jl_value_t addrspace(11)* %25 to %jl_value_t addrspace(10)* addrspace(11)* | |
%27 = load %jl_value_t addrspace(10)*, %jl_value_taddrspace(10)* addrspace(11)* %26, align 8 | |
;} | |
; Location: C:\Users\Chris Rackauckas\OneDrive\Computer\Desktop\test.jl:23 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%28 = addrspacecast %jl_value_t addrspace(10)* %27to %jl_value_t addrspace(11)* | |
%29 = bitcast %jl_value_t addrspace(11)* %28 to %jl_array_t addrspace(11)* | |
%30 = getelementptr inbounds %jl_array_t, %jl_array_t addrspace(11)* %29, i64 0, i32 1 | |
%31 = load i64, i64 addrspace(11)* %30, align 8 | |
%32 = icmp eq i64 %31, 0 | |
br i1 %32, label %oob, label %idxend.lr.ph | |
idxend.lr.ph: ; preds = %L9.L14_crit_edge | |
%33 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %1, i64 2 | |
%34 = load %jl_value_t addrspace(10)*, %jl_value_taddrspace(10)** %33, align 8 | |
%35 = addrspacecast %jl_value_t addrspace(10)* %34to %jl_value_t addrspace(11)* | |
%36 = bitcast %jl_value_t addrspace(11)* %35 to %jl_array_t addrspace(11)* | |
%37 = getelementptr inbounds %jl_array_t, %jl_array_t addrspace(11)* %36, i64 0, i32 1 | |
%38 = load i64, i64 addrspace(11)* %37, align 8 | |
%39 = bitcast %jl_value_t addrspace(11)* %16 to %jl_array_t addrspace(11)* | |
%40 = getelementptr inbounds %jl_array_t, %jl_array_t addrspace(11)* %39, i64 0, i32 1 | |
%41 = load i64, i64 addrspace(11)* %40, align 8 | |
%42 = bitcast %jl_value_t addrspace(11)* %28 to double addrspace(13)* addrspace(11)* | |
%43 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %42, align 8 | |
%44 = bitcast %jl_value_t addrspace(11)* %35 to double addrspace(13)* addrspace(11)* | |
%45 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %44, align 8 | |
%46 = bitcast %jl_value_t addrspace(11)* %16 to double addrspace(13)* addrspace(11)* | |
%47 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %46, align 8 | |
br label %idxend | |
L30: ; preds = %idxend8 | |
;} | |
; Function iterate; { | |
; Location: range.jl:576 | |
; Function +; { | |
; Location: int.jl:53 | |
%48 = add nuw i64 %value_phi344, 1 | |
;}} | |
; Function getindex; { | |
; Location: array.jl:731 | |
%49 = icmp ult i64 %value_phi344, %31 | |
br i1 %49, label %idxend, label %oob | |
L52: ; preds = %idxend8, %top | |
;} | |
; Location: C:\Users\Chris Rackauckas\OneDrive\Computer\Desktop\test.jl:25 | |
; Function materialize!; { | |
; Location: broadcast.jl:727 | |
; Function instantiate; { | |
; Location: broadcast.jl:269 | |
; Function check_broadcast_axes; { | |
; Location: broadcast.jl:459 | |
; Function check_broadcast_axes; { | |
; Location: broadcast.jl:455 | |
; Function broadcast_axes; { | |
; Location: broadcast.jl:206 | |
; Function axes; { | |
; Location: abstractarray.jl:75 | |
; Function size; { | |
; Location: array.jl:155 | |
%50 = addrspacecast %jl_value_t addrspace(10)* %15to %jl_value_t addrspace(11)* | |
%51 = bitcast %jl_value_t addrspace(11)* %50 to %jl_value_t addrspace(10)* addrspace(11)* | |
%52 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* | |
%51, i64 3 | |
%53 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %52 to i64 addrspace(11)* | |
%54 = load i64, i64 addrspace(11)* %53, align 8 | |
;} | |
; Function map; { | |
; Location: tuple.jl:162 | |
; Function Type; { | |
; Location: range.jl:298 | |
; Function Type; { | |
; Location: range.jl:289 | |
; Function max; { | |
; Location: promotion.jl:436 | |
%55 = icmp sgt i64 %54, 0 | |
%56 = select i1 %55, i64 %54, i64 0 | |
;}}}}}} | |
; Function check_broadcast_shape; { | |
; Location: broadcast.jl:452 | |
; Function _bcsm; { | |
; Location: broadcast.jl:441 | |
; Function ==; { | |
; Location: range.jl:698 | |
; Function ==; { | |
; Location: promotion.jl:425 | |
%57 = icmp eq i64 %22, %56 | |
;}} | |
; Function ==; { | |
; Location: promotion.jl:425 | |
%58 = icmp eq i64 %56, 1 | |
;} | |
%value_phi13.v = or i1 %57, %58 | |
;} | |
br i1 %value_phi13.v, label %L98, label %L64 | |
L64: ; preds = %L52 | |
; Function Type; { | |
; Location: array.jl:12 | |
%59 = bitcast %jl_value_t*** %5 to i8* | |
%60 = call noalias nonnull %jl_value_t addrspace(10)* @jl_gc_pool_alloc(i8* %59, i32 1488, i32 16) | |
#3 | |
%61 = bitcast %jl_value_t addrspace(10)* %60 to %jl_value_t addrspace(10)* addrspace(10)* | |
%62 = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(10)* %61, i64 | |
-1 | |
store %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 97671184 to %jl_value_t | |
*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(10)* addrspace(10)* %62 | |
%63 = bitcast %jl_value_t addrspace(10)* %60 to %jl_value_t addrspace(10)* addrspace(10)* | |
store %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 105104928 to %jl_value_ | |
t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(10)* addrspace(10)* %63, align 8 | |
;} | |
%64 = addrspacecast %jl_value_t addrspace(10)* %60to %jl_value_t addrspace(12)* | |
%65 = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %gcframe, i32 2 | |
store %jl_value_t addrspace(10)* %60, %jl_value_t addrspace(10)** %65 | |
call void @jl_throw(%jl_value_t addrspace(12)* %64) unreachable | |
L98: ; preds = %L52 | |
;}}}} | |
; Function copyto!; { | |
; Location: broadcast.jl:768 | |
; Function copyto!; { | |
; Location: broadcast.jl:812 | |
; Function preprocess; { | |
; Location: broadcast.jl:795 | |
; Function preprocess_args; { | |
; Location: broadcast.jl:798 | |
; Function preprocess_args; { | |
; Location: broadcast.jl:799 | |
; Function preprocess; { | |
; Location: broadcast.jl:796 | |
; Function broadcast_unalias; { | |
; Location: broadcast.jl:789 | |
%66 = icmp eq %jl_value_t addrspace(11)* %16, %50 | |
br i1 %66, label %L124, label %L111 | |
L111: ; preds = %L98 | |
%67 = addrspacecast %jl_value_t addrspace(11)* %16to %jl_value_t* | |
; Function unalias; { | |
; Location: abstractarray.jl:1079 | |
; Function mightalias; { | |
; Location: abstractarray.jl:1113 | |
; Function dataids; { | |
; Location: abstractarray.jl:1137 | |
; Function pointer; { | |
; Location: abstractarray.jl:858 | |
; Function unsafe_convert; { | |
; Location: pointer.jl:65 | |
%68 = bitcast %jl_value_t* %67 to i64* | |
%69 = load i64, i64* %68, align 8 | |
%70 = addrspacecast %jl_value_t addrspace(11)* %50to %jl_value_t* | |
%71 = bitcast %jl_value_t* %70 to i64* | |
%72 = load i64, i64* %71, align 8 | |
;}}} | |
; Function _isdisjoint; { | |
; Location: abstractarray.jl:1120 | |
; Function !=; { | |
; Location: operators.jl:185 | |
; Function ==; { | |
; Location: promotion.jl:425 | |
%73 = icmp eq i64 %69, %72 | |
;}}}} | |
br i1 %73, label %L119, label %L124 | |
L119: ; preds = %L111 | |
; Function unaliascopy; { | |
; Location: abstractarray.jl:1095 | |
; Function copy; { | |
; Location: array.jl:299 | |
%74 = call %jl_value_t addrspace(10)* inttoptr (i64 1801141856 to %jl_value_t addrspace(10)* (%jl_ | |
value_t addrspace(10)*)*)(%jl_value_t addrspace(10)*nonnull %15) | |
%.phi.trans.insert = addrspacecast %jl_value_t addrspace(10)* %74 to %jl_value_t addrspace(11)* | |
%.phi.trans.insert60 = bitcast %jl_value_t addrspace(11)* %.phi.trans.insert to %jl_value_t addrsp | |
ace(10)* addrspace(11)* | |
%.phi.trans.insert61 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10 | |
)* addrspace(11)* %.phi.trans.insert60, i64 3 | |
%.phi.trans.insert62 = bitcast %jl_value_t addrspace(10)* addrspace(11)* %.phi.trans.insert61 to i | |
64 addrspace(11)* | |
;}}}} | |
; Function extrude; { | |
; Location: broadcast.jl:541 | |
; Function newindexer; { | |
; Location: broadcast.jl:496 | |
; Function broadcast_axes; { | |
; Location: broadcast.jl:206 | |
; Function axes; { | |
; Location: abstractarray.jl:75 | |
; Function size; { | |
; Location: array.jl:155 | |
%.pre = load i64, i64 addrspace(11)* %.phi.trans.insert62, align 8 | |
;}}}}} | |
; Function broadcast_unalias; { | |
; Location: broadcast.jl:789 | |
; Function unalias; { | |
; Location: abstractarray.jl:1079 | |
br label %L124 | |
L124: ; preds = %L111, %L98, %L119 | |
;}} | |
; Function extrude; { | |
; Location: broadcast.jl:541 | |
; Function newindexer; { | |
; Location: broadcast.jl:496 | |
; Function broadcast_axes; { | |
; Location: broadcast.jl:206 | |
; Function axes; { | |
; Location: abstractarray.jl:75 | |
; Function size; { | |
; Location: array.jl:155 | |
%75 = phi i64 [ %54, %L98 ], [ %.pre, %L119 ], [ %54, %L111 ] | |
%value_phi16 = phi %jl_value_t addrspace(10)* [ %15, %L98 ], [ %74, %L119 ], [ %15, %L111 ] | |
;}}}}}}}}} | |
; Location: broadcast.jl:813 | |
; Function macro expansion; { | |
; Location: simdloop.jl:66 | |
br i1 %21, label %L155.lr.ph.us, label %L211 | |
L155.lr.ph.us: ; preds = %L124 | |
;} | |
; Location: broadcast.jl:812 | |
; Function preprocess; { | |
; Location: broadcast.jl:795 | |
; Function preprocess_args; { | |
; Location: broadcast.jl:798 | |
; Function preprocess; { | |
; Location: broadcast.jl:796 | |
; Function extrude; { | |
; Location: broadcast.jl:541 | |
; Function newindexer; { | |
; Location: broadcast.jl:496 | |
; Function shapeindexer; { | |
; Location: broadcast.jl:497 | |
; Function _newindexer; { | |
; Location: broadcast.jl:502 | |
; Function !=; { | |
; Location: operators.jl:185 | |
; Function ==; { | |
; Location: promotion.jl:425 | |
%76 = icmp eq i64 %20, 1 | |
;}}}}}}} | |
; Function preprocess_args; { | |
; Location: broadcast.jl:799 | |
; Function preprocess; { | |
; Location: broadcast.jl:796 | |
; Function extrude; { | |
; Location: broadcast.jl:541 | |
; Function newindexer; { | |
; Location: broadcast.jl:496 | |
; Function broadcast_axes; { | |
; Location: broadcast.jl:206 | |
; Function axes; { | |
; Location: abstractarray.jl:75 | |
; Function size; { | |
; Location: array.jl:155 | |
%77 = addrspacecast %jl_value_t addrspace(10)* %value_phi16 to %jl_value_t addrspace(11)* | |
;}}} | |
; Function shapeindexer; { | |
; Location: broadcast.jl:497 | |
; Function _newindexer; { | |
; Location: broadcast.jl:502 | |
; Function !=; { | |
; Location: operators.jl:185 | |
; Function ==; { | |
; Location: promotion.jl:425 | |
%78 = icmp eq i64 %75, 1 | |
%79 = bitcast %jl_value_t addrspace(11)* %16 to double addrspace(13)* addrspace(11)* | |
%80 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %79, align 8 | |
%81 = bitcast double addrspace(13)* %80 to i8 addrspace(13)* | |
%82 = bitcast %jl_value_t addrspace(11)* %77 to double addrspace(13)* addrspace(11)* | |
%83 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %82, align 8 | |
%84 = bitcast double addrspace(13)* %83 to i8 addrspace(13)* | |
;}}}}}}}}}} | |
; Location: broadcast.jl:813 | |
; Function macro expansion; { | |
; Location: simdloop.jl:71 | |
br i1 %76, label %L155.lr.ph.split.us.us, label %L155.lr.ph.L155.lr.ph.split_crit_edge.us | |
L155.us47: ; preds = %scalar.ph, %L155.us47 | |
%value_phi2043.us48 = phi i64 [ %bc.resume.val, %scalar.ph ], [ %90, %L155.us47 ] | |
; Location: simdloop.jl:73 | |
; Function macro expansion; { | |
; Location: broadcast.jl:814 | |
; Function getindex; { | |
; Location: broadcast.jl:507 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:546 | |
; Function _getindex; { | |
; Location: broadcast.jl:570 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%85 = getelementptr inbounds double, double addrspace(13)* %80, i64 %value_phi2043.us48 | |
%86 = load double, double addrspace(13)* %85, align 8 | |
;}} | |
; Function _getindex; { | |
; Location: broadcast.jl:571 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%87 = getelementptr inbounds double, double addrspace(13)* %83, i64 %value_phi2043.us48 | |
%88 = load double, double addrspace(13)* %87, align 8 | |
;}}}} | |
; Location: broadcast.jl:547 | |
; Function _broadcast_getindex_evalf; { | |
; Location: broadcast.jl:574 | |
; Function +; { | |
; Location: float.jl:395 | |
%89 = fadd double %86, %88 | |
;}}}} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
store double %89, double addrspace(13)* %85, align8 | |
;} | |
; Function +; { | |
; Location: int.jl:53 | |
%90 = add nuw nsw i64 %value_phi2043.us48, 1 | |
;}} | |
; Location: simdloop.jl:71 | |
; Function <; { | |
; Location: int.jl:49 | |
%91 = icmp ult i64 %90, %22 | |
;} | |
br i1 %91, label %L155.us47, label %L211 | |
L155.us.us51: ; preds = %L155.lr.ph.split.us.L155.lr.ph.split.us | |
.split_crit_edge.us, %L155.us.us51 | |
%value_phi2043.us.us52 = phi i64 [ 0, %L155.lr.ph.split.us.L155.lr.ph.split.us.split_crit_edge.us | |
], [ %97, %L155.us.us51 ] | |
; Location: simdloop.jl:73 | |
; Function macro expansion; { | |
; Location: broadcast.jl:814 | |
; Function getindex; { | |
; Location: broadcast.jl:507 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:546 | |
; Function _getindex; { | |
; Location: broadcast.jl:570 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%92 = load double, double addrspace(13)* %80, align 8 | |
;}} | |
; Function _getindex; { | |
; Location: broadcast.jl:571 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%93 = getelementptr inbounds double, double addrspace(13)* %83, i64 %value_phi2043.us.us52 | |
%94 = load double, double addrspace(13)* %93, align 8 | |
;}}}} | |
; Location: broadcast.jl:547 | |
; Function _broadcast_getindex_evalf; { | |
; Location: broadcast.jl:574 | |
; Function +; { | |
; Location: float.jl:395 | |
%95 = fadd double %92, %94 | |
;}}}} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
%96 = getelementptr inbounds double, double addrspace(13)* %80, i64 %value_phi2043.us.us52 | |
store double %95, double addrspace(13)* %96, align8 | |
;} | |
; Function +; { | |
; Location: int.jl:53 | |
%97 = add nuw nsw i64 %value_phi2043.us.us52, 1 | |
;}} | |
; Location: simdloop.jl:71 | |
; Function <; { | |
; Location: int.jl:49 | |
%98 = icmp ult i64 %97, %22 | |
;} | |
br i1 %98, label %L155.us.us51, label %L211 | |
L155.lr.ph.split.us.us: ; preds = %L155.lr.ph.us | |
br i1 %78, label %L155.lr.ph.split.us.split.us.us,label %L155.lr.ph.split.us.L155.lr.ph.split.us. | |
split_crit_edge.us | |
L155.lr.ph.L155.lr.ph.split_crit_edge.us: ; preds = %L155.lr.ph.us | |
%min.iters.check91 = icmp ult i64 %22, 16 | |
br i1 %78, label %L155.lr.ph.split.split.us.us, label %L155.lr.ph.split.L155.lr.ph.split.split_cri | |
t_edge.us | |
L155.us45.us: ; preds = %scalar.ph90, %L155.us45.us | |
%value_phi2043.us46.us = phi i64 [ %bc.resume.val105, %scalar.ph90 ], [ %103, %L155.us45.us ] | |
; Location: simdloop.jl:73 | |
; Function macro expansion; { | |
; Location: broadcast.jl:814 | |
; Function getindex; { | |
; Location: broadcast.jl:507 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:546 | |
; Function _getindex; { | |
; Location: broadcast.jl:570 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%99 = getelementptr inbounds double, double addrspace(13)* %80, i64 %value_phi2043.us46.us | |
%100 = load double, double addrspace(13)* %99, align 8 | |
;}} | |
; Function _getindex; { | |
; Location: broadcast.jl:571 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%101 = load double, double addrspace(13)* %83, align 8 | |
;}}}} | |
; Location: broadcast.jl:547 | |
; Function _broadcast_getindex_evalf; { | |
; Location: broadcast.jl:574 | |
; Function +; { | |
; Location: float.jl:395 | |
%102 = fadd double %100, %101 | |
;}}}} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
store double %102, double addrspace(13)* %99, align 8 | |
;} | |
; Function +; { | |
; Location: int.jl:53 | |
%103 = add nuw nsw i64 %value_phi2043.us46.us, 1 | |
;}} | |
; Location: simdloop.jl:71 | |
; Function <; { | |
; Location: int.jl:49 | |
%104 = icmp ult i64 %103, %22 | |
;} | |
br i1 %104, label %L155.us45.us, label %L211 | |
L155.lr.ph.split.split.us.us: ; preds = %L155.lr.ph.L155.lr.ph.split_crit_edge.u | |
s | |
br i1 %min.iters.check91, label %scalar.ph90, label %vector.memcheck99 | |
vector.memcheck99: ; preds = %L155.lr.ph.split.split.us.us | |
%scevgep93 = getelementptr double, double addrspace(13)* %80, i64 %22 | |
%uglygep = getelementptr i8, i8 addrspace(13)* %84, i64 1 | |
%bound095 = icmp ugt i8 addrspace(13)* %uglygep, %81 | |
%bound196 = icmp ult double addrspace(13)* %83, %scevgep93 | |
%memcheck.conflict98 = and i1 %bound095, %bound196 | |
br i1 %memcheck.conflict98, label %scalar.ph90, label %vector.ph100 | |
vector.ph100: ; preds = %vector.memcheck99 | |
%n.vec102 = and i64 %22, 9223372036854775792 | |
br label %vector.body88 | |
vector.body88: ; preds = %vector.body88, %vector.ph100 | |
; Location: simdloop.jl:73 | |
; Function macro expansion; { | |
; Location: broadcast.jl:814 | |
; Function +; { | |
; Location: int.jl:53 | |
%index103 = phi i64 [ 0, %vector.ph100 ], [ %index.next104, %vector.body88 ] | |
;} | |
; Function getindex; { | |
; Location: broadcast.jl:507 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:546 | |
; Function _getindex; { | |
; Location: broadcast.jl:570 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%105 = getelementptr inbounds double, double addrspace(13)* %80, i64 %index103 | |
%106 = bitcast double addrspace(13)* %105 to <4 x double> addrspace(13)* | |
%wide.load113 = load <4 x double>, <4 x double> addrspace(13)* %106, align 8 | |
%107 = getelementptr double, double addrspace(13)*%105, i64 4 | |
%108 = bitcast double addrspace(13)* %107 to <4 x double> addrspace(13)* | |
%wide.load114 = load <4 x double>, <4 x double> addrspace(13)* %108, align 8 | |
%109 = getelementptr double, double addrspace(13)*%105, i64 8 | |
%110 = bitcast double addrspace(13)* %109 to <4 x double> addrspace(13)* | |
%wide.load115 = load <4 x double>, <4 x double> addrspace(13)* %110, align 8 | |
%111 = getelementptr double, double addrspace(13)*%105, i64 12 | |
%112 = bitcast double addrspace(13)* %111 to <4 x double> addrspace(13)* | |
%wide.load116 = load <4 x double>, <4 x double> addrspace(13)* %112, align 8 | |
;}} | |
; Function _getindex; { | |
; Location: broadcast.jl:571 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%113 = load double, double addrspace(13)* %83, align 8 | |
%114 = insertelement <4 x double> undef, double %113, i32 0 | |
%115 = shufflevector <4 x double> %114, <4 x double> undef, <4 x i32> zeroinitializer | |
%116 = insertelement <4 x double> undef, double %113, i32 0 | |
%117 = shufflevector <4 x double> %116, <4 x double> undef, <4 x i32> zeroinitializer | |
%118 = insertelement <4 x double> undef, double %113, i32 0 | |
%119 = shufflevector <4 x double> %118, <4 x double> undef, <4 x i32> zeroinitializer | |
%120 = load double, double addrspace(13)* %83, align 8 | |
;}}}}}} | |
; Function +; { | |
; Location: int.jl:53 | |
%121 = insertelement <4 x double> undef, double %120, i32 0 | |
%122 = shufflevector <4 x double> %121, <4 x double> undef, <4 x i32> zeroinitializer | |
%123 = fadd <4 x double> %wide.load113, %115 | |
%124 = fadd <4 x double> %wide.load114, %117 | |
%125 = fadd <4 x double> %wide.load115, %119 | |
%126 = fadd <4 x double> %wide.load116, %122 | |
;} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
%127 = bitcast double addrspace(13)* %105 to <4 x double> addrspace(13)* | |
store <4 x double> %123, <4 x double> addrspace(13)* %127, align 8 | |
%128 = bitcast double addrspace(13)* %107 to <4 x double> addrspace(13)* | |
store <4 x double> %124, <4 x double> addrspace(13)* %128, align 8 | |
%129 = bitcast double addrspace(13)* %109 to <4 x double> addrspace(13)* | |
store <4 x double> %125, <4 x double> addrspace(13)* %129, align 8 | |
%130 = bitcast double addrspace(13)* %111 to <4 x double> addrspace(13)* | |
store <4 x double> %126, <4 x double> addrspace(13)* %130, align 8 | |
;} | |
; Function +; { | |
; Location: int.jl:53 | |
%index.next104 = add i64 %index103, 16 | |
%131 = icmp eq i64 %index.next104, %n.vec102 | |
br i1 %131, label %middle.block89, label %vector.body88 | |
middle.block89: ; preds = %vector.body88 | |
%cmp.n106 = icmp eq i64 %22, %n.vec102 | |
;}} | |
; Location: simdloop.jl:71 | |
br i1 %cmp.n106, label %L211, label %scalar.ph90 | |
scalar.ph90: ; preds = %middle.block89, %vector.memcheck99, %L1 | |
55.lr.ph.split.split.us.us | |
%bc.resume.val105 = phi i64 [ %n.vec102, %middle.block89 ], [ 0, %L155.lr.ph.split.split.us.us ], | |
[ 0, %vector.memcheck99 ] | |
br label %L155.us45.us | |
L155.lr.ph.split.L155.lr.ph.split.split_crit_edge.us: ; preds = %L155.lr.ph.L155.lr.ph.split_crit_ed | |
ge.us | |
br i1 %min.iters.check91, label %scalar.ph, label %vector.memcheck | |
vector.memcheck: ; preds = %L155.lr.ph.split.L155.lr.ph.split.split | |
_crit_edge.us | |
%scevgep = getelementptr double, double addrspace(13)* %80, i64 %22 | |
%scevgep76 = getelementptr double, double addrspace(13)* %83, i64 %22 | |
%bound0 = icmp ult double addrspace(13)* %80, %scevgep76 | |
%bound1 = icmp ult double addrspace(13)* %83, %scevgep | |
%memcheck.conflict = and i1 %bound0, %bound1 | |
br i1 %memcheck.conflict, label %scalar.ph, label %vector.ph | |
vector.ph: ; preds = %vector.memcheck | |
%n.vec = and i64 %22, 9223372036854775792 | |
br label %vector.body | |
vector.body: ; preds = %vector.body, %vector.ph | |
; Location: simdloop.jl:73 | |
; Function macro expansion; { | |
; Location: broadcast.jl:814 | |
; Function +; { | |
; Location: int.jl:53 | |
%index = phi i64 [ 0, %vector.ph ], [ %index.next,%vector.body ] | |
;} | |
; Function getindex; { | |
; Location: broadcast.jl:507 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:546 | |
; Function _getindex; { | |
; Location: broadcast.jl:570 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%132 = getelementptr inbounds double, double addrspace(13)* %80, i64 %index | |
%133 = bitcast double addrspace(13)* %132 to <4 x double> addrspace(13)* | |
%wide.load = load <4 x double>, <4 x double> addrspace(13)* %133, align 8 | |
%134 = getelementptr double, double addrspace(13)*%132, i64 4 | |
%135 = bitcast double addrspace(13)* %134 to <4 x double> addrspace(13)* | |
%wide.load81 = load <4 x double>, <4 x double> addrspace(13)* %135, align 8 | |
%136 = getelementptr double, double addrspace(13)*%132, i64 8 | |
%137 = bitcast double addrspace(13)* %136 to <4 x double> addrspace(13)* | |
%wide.load82 = load <4 x double>, <4 x double> addrspace(13)* %137, align 8 | |
%138 = getelementptr double, double addrspace(13)*%132, i64 12 | |
%139 = bitcast double addrspace(13)* %138 to <4 x double> addrspace(13)* | |
%wide.load83 = load <4 x double>, <4 x double> addrspace(13)* %139, align 8 | |
;}} | |
; Function _getindex; { | |
; Location: broadcast.jl:571 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%140 = getelementptr inbounds double, double addrspace(13)* %83, i64 %index | |
%141 = bitcast double addrspace(13)* %140 to <4 x double> addrspace(13)* | |
%wide.load84 = load <4 x double>, <4 x double> addrspace(13)* %141, align 8 | |
%142 = getelementptr double, double addrspace(13)*%140, i64 4 | |
%143 = bitcast double addrspace(13)* %142 to <4 x double> addrspace(13)* | |
%wide.load85 = load <4 x double>, <4 x double> addrspace(13)* %143, align 8 | |
%144 = getelementptr double, double addrspace(13)*%140, i64 8 | |
%145 = bitcast double addrspace(13)* %144 to <4 x double> addrspace(13)* | |
%wide.load86 = load <4 x double>, <4 x double> addrspace(13)* %145, align 8 | |
%146 = getelementptr double, double addrspace(13)*%140, i64 12 | |
%147 = bitcast double addrspace(13)* %146 to <4 x double> addrspace(13)* | |
%wide.load87 = load <4 x double>, <4 x double> addrspace(13)* %147, align 8 | |
;}}}} | |
; Location: broadcast.jl:547 | |
; Function _broadcast_getindex_evalf; { | |
; Location: broadcast.jl:574 | |
; Function +; { | |
; Location: float.jl:395 | |
%148 = fadd <4 x double> %wide.load, %wide.load84 | |
%149 = fadd <4 x double> %wide.load81, %wide.load85 %150 = fadd <4 x double> %wide.load82, %wide.load86 %151 = fadd <4 x double> %wide.load83, %wide.load87;}}}} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
%152 = bitcast double addrspace(13)* %132 to <4 x double> addrspace(13)* | |
store <4 x double> %148, <4 x double> addrspace(13)* %152, align 8 | |
%153 = bitcast double addrspace(13)* %134 to <4 x double> addrspace(13)* | |
store <4 x double> %149, <4 x double> addrspace(13)* %153, align 8 | |
%154 = bitcast double addrspace(13)* %136 to <4 x double> addrspace(13)* | |
store <4 x double> %150, <4 x double> addrspace(13)* %154, align 8 | |
%155 = bitcast double addrspace(13)* %138 to <4 x double> addrspace(13)* | |
store <4 x double> %151, <4 x double> addrspace(13)* %155, align 8 | |
;} | |
; Function +; { | |
; Location: int.jl:53 | |
%index.next = add i64 %index, 16 | |
%156 = icmp eq i64 %index.next, %n.vec | |
br i1 %156, label %middle.block, label %vector.body | |
middle.block: ; preds = %vector.body | |
%cmp.n = icmp eq i64 %22, %n.vec | |
;}} | |
; Location: simdloop.jl:71 | |
br i1 %cmp.n, label %L211, label %scalar.ph | |
scalar.ph: ; preds = %middle.block, %vector.memcheck, %L155.l | |
r.ph.split.L155.lr.ph.split.split_crit_edge.us | |
%bc.resume.val = phi i64 [ %n.vec, %middle.block ], [ 0, %L155.lr.ph.split.L155.lr.ph.split.split_ | |
crit_edge.us ], [ 0, %vector.memcheck ] | |
br label %L155.us47 | |
L155.us.us.us: ; preds = %L155.lr.ph.split.us.split.us.us, %L155. | |
us.us.us | |
%value_phi2043.us.us.us = phi i64 [ 0, %L155.lr.ph.split.us.split.us.us ], [ %161, %L155.us.us.us | |
] | |
; Location: simdloop.jl:73 | |
; Function macro expansion; { | |
; Location: broadcast.jl:814 | |
; Function getindex; { | |
; Location: broadcast.jl:507 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:546 | |
; Function _getindex; { | |
; Location: broadcast.jl:570 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%157 = load double, double addrspace(13)* %80, align 8 | |
;}} | |
; Function _getindex; { | |
; Location: broadcast.jl:571 | |
; Function _broadcast_getindex; { | |
; Location: broadcast.jl:540 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%158 = load double, double addrspace(13)* %83, align 8 | |
;}}}} | |
; Location: broadcast.jl:547 | |
; Function _broadcast_getindex_evalf; { | |
; Location: broadcast.jl:574 | |
; Function +; { | |
; Location: float.jl:395 | |
%159 = fadd double %157, %158 | |
;}}}} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
%160 = getelementptr inbounds double, double addrspace(13)* %80, i64 %value_phi2043.us.us.us | |
store double %159, double addrspace(13)* %160, align 8 | |
;} | |
; Function +; { | |
; Location: int.jl:53 | |
%161 = add nuw nsw i64 %value_phi2043.us.us.us, 1 | |
;}} | |
; Location: simdloop.jl:71 | |
; Function <; { | |
; Location: int.jl:49 | |
%162 = icmp ult i64 %161, %22 | |
;} | |
br i1 %162, label %L155.us.us.us, label %L211 | |
L155.lr.ph.split.us.split.us.us: ; preds = %L155.lr.ph.split.us.us | |
br label %L155.us.us.us | |
L155.lr.ph.split.us.L155.lr.ph.split.us.split_crit_edge.us: ; preds = %L155.lr.ph.split.us.us | |
br label %L155.us.us51 | |
L211: ; preds = %L155.us47, %middle.block, %L155.us45.us | |
, %middle.block89, %L155.us.us51, %L155.us.us.us, %L124 | |
;}}}} | |
%163 = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %gcframe, i32 1 | |
%164 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %163 | |
%165 = getelementptr %jl_value_t**, %jl_value_t***%5, i32 0 | |
%166 = bitcast %jl_value_t*** %165 to %jl_value_t addrspace(10)** | |
store %jl_value_t addrspace(10)* %164, %jl_value_taddrspace(10)** %166 | |
ret %jl_value_t addrspace(10)* %13 | |
oob: ; preds = %L30, %L9.L14_crit_edge | |
%value_phi3.lcssa = phi i64 [ 1, %L9.L14_crit_edge], [ %48, %L30 ] | |
; Location: C:\Users\Chris Rackauckas\OneDrive\Computer\Desktop\test.jl:23 | |
; Function getindex; { | |
; Location: array.jl:731 | |
%167 = alloca i64, align 8 | |
store i64 %value_phi3.lcssa, i64* %167, align 8 | |
%168 = addrspacecast %jl_value_t addrspace(10)* %27 to %jl_value_t addrspace(12)* | |
call void @jl_bounds_error_ints(%jl_value_t addrspace(12)* %168, i64* nonnull %167, i64 1) | |
unreachable | |
idxend: ; preds = %idxend.lr.ph, %L30 | |
%169 = phi i64 [ 0, %idxend.lr.ph ], [ %value_phi344, %L30 ] | |
%value_phi344 = phi i64 [ 1, %idxend.lr.ph ], [ %48, %L30 ] | |
%170 = icmp ult i64 %169, %38 | |
br i1 %170, label %idxend6, label %oob5 | |
oob5: ; preds = %idxend | |
%171 = alloca i64, align 8 | |
store i64 %value_phi344, i64* %171, align 8 | |
%172 = addrspacecast %jl_value_t addrspace(10)* %34 to %jl_value_t addrspace(12)* | |
call void @jl_bounds_error_ints(%jl_value_t addrspace(12)* %172, i64* nonnull %171, i64 1) | |
unreachable | |
idxend6: ; preds = %idxend | |
;} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
%173 = icmp ult i64 %169, %41 | |
br i1 %173, label %idxend8, label %oob7 | |
oob7: ; preds = %idxend6 | |
%174 = alloca i64, align 8 | |
store i64 %value_phi344, i64* %174, align 8 | |
%175 = addrspacecast %jl_value_t addrspace(10)* %13 to %jl_value_t addrspace(12)* | |
call void @jl_bounds_error_ints(%jl_value_t addrspace(12)* %175, i64* nonnull %174, i64 1) | |
unreachable | |
idxend8: ; preds = %idxend6 | |
;} | |
; Function getindex; { | |
; Location: array.jl:731 | |
%176 = getelementptr inbounds double, double addrspace(13)* %43, i64 %169 | |
%177 = load double, double addrspace(13)* %176, align 8 | |
%178 = getelementptr inbounds double, double addrspace(13)* %45, i64 %169 | |
%179 = load double, double addrspace(13)* %178, align 8 | |
;} | |
; Function *; { | |
; Location: float.jl:399 | |
%180 = fmul double %177, %179 | |
;} | |
; Function setindex!; { | |
; Location: array.jl:769 | |
%181 = getelementptr inbounds double, double addrspace(13)* %47, i64 %169 | |
store double %180, double addrspace(13)* %181, align 8 | |
;} | |
; Function iterate; { | |
; Location: range.jl:575 | |
; Function ==; { | |
; Location: promotion.jl:425 | |
%182 = icmp eq i64 %value_phi344, %22 | |
;}} | |
br i1 %182, label %L52, label %L30 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment