Last active
January 15, 2020 03:54
-
-
Save YingboMa/63c47fc7f64678af87e63aa7b393ba61 to your computer and use it in GitHub Desktop.
This file contains 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
define void @"julia_perform_step!_19254"(%jl_value_t addrspace(10)* nonnull align 8 dereferenceable(304), %jl_value_t addrspace(10)* nonnull align 8 dereferenceable(544), i8) { | |
top: | |
%3 = addrspacecast %jl_value_t addrspace(10)* %0 to %jl_value_t addrspace(11)* | |
%4 = bitcast %jl_value_t addrspace(11)* %3 to i8 addrspace(11)* | |
%5 = getelementptr inbounds i8, i8 addrspace(11)* %4, i64 32 | |
%6 = bitcast i8 addrspace(11)* %5 to double addrspace(11)* | |
%7 = load double, double addrspace(11)* %6, align 8 | |
%8 = getelementptr inbounds i8, i8 addrspace(11)* %4, i64 48 | |
%9 = bitcast i8 addrspace(11)* %8 to %jl_value_t addrspace(10)* addrspace(11)* | |
%10 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %9, align 8 | |
%11 = addrspacecast %jl_value_t addrspace(10)* %1 to %jl_value_t addrspace(11)* | |
%12 = bitcast %jl_value_t addrspace(11)* %11 to i8 addrspace(11)* | |
%13 = getelementptr inbounds i8, i8 addrspace(11)* %12, i64 152 | |
%14 = bitcast i8 addrspace(11)* %13 to double addrspace(11)* | |
%15 = getelementptr inbounds i8, i8 addrspace(11)* %12, i64 160 | |
%16 = bitcast i8 addrspace(11)* %15 to double addrspace(11)* | |
%17 = getelementptr inbounds i8, i8 addrspace(11)* %12, i64 16 | |
%18 = bitcast i8 addrspace(11)* %17 to %jl_value_t addrspace(10)* addrspace(11)* | |
%19 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %18, align 8 | |
%20 = getelementptr inbounds i8, i8 addrspace(11)* %12, i64 24 | |
%21 = bitcast i8 addrspace(11)* %20 to %jl_value_t addrspace(10)* addrspace(11)* | |
%22 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %21, align 8 | |
%23 = getelementptr inbounds i8, i8 addrspace(11)* %12, i64 80 | |
%24 = bitcast i8 addrspace(11)* %23 to %jl_value_t addrspace(10)* addrspace(11)* | |
%25 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %24, align 8 | |
%26 = addrspacecast %jl_value_t addrspace(10)* %22 to %jl_value_t addrspace(11)* | |
%27 = bitcast %jl_value_t addrspace(11)* %26 to { double, { [4 x double] } } addrspace(13)* addrspace(11)* | |
%28 = load { double, { [4 x double] } } addrspace(13)*, { double, { [4 x double] } } addrspace(13)* addrspace(11)* %27, align 8 | |
%29 = addrspacecast %jl_value_t addrspace(10)* %19 to %jl_value_t addrspace(11)* | |
%30 = bitcast %jl_value_t addrspace(11)* %29 to { double, { [4 x double] } } addrspace(13)* addrspace(11)* | |
%31 = load { double, { [4 x double] } } addrspace(13)*, { double, { [4 x double] } } addrspace(13)* addrspace(11)* %30, align 8 | |
%32 = load double, double addrspace(11)* %14, align 8 | |
%33 = load double, double addrspace(11)* %16, align 8 | |
%34 = addrspacecast %jl_value_t addrspace(10)* %10 to %jl_value_t addrspace(11)* | |
%35 = bitcast %jl_value_t addrspace(11)* %34 to { double, { [4 x double] } } addrspace(13)* addrspace(11)* | |
%36 = load { double, { [4 x double] } } addrspace(13)*, { double, { [4 x double] } } addrspace(13)* addrspace(11)* %35, align 8 | |
%37 = addrspacecast %jl_value_t addrspace(10)* %25 to %jl_value_t addrspace(11)* | |
%38 = bitcast %jl_value_t addrspace(11)* %37 to { double, { [4 x double] } } addrspace(13)* addrspace(11)* | |
%39 = load { double, { [4 x double] } } addrspace(13)*, { double, { [4 x double] } } addrspace(13)* addrspace(11)* %38, align 8 | |
%40 = insertelement <4 x double> undef, double %7, i32 0 | |
%41 = shufflevector <4 x double> %40, <4 x double> undef, <4 x i32> zeroinitializer | |
%42 = insertelement <4 x double> undef, double %32, i32 0 | |
%43 = shufflevector <4 x double> %42, <4 x double> undef, <4 x i32> zeroinitializer | |
%44 = insertelement <4 x double> undef, double %33, i32 0 | |
%45 = shufflevector <4 x double> %44, <4 x double> undef, <4 x i32> zeroinitializer | |
br label %L10 | |
L10: ; preds = %L10, %top | |
%value_phi = phi i64 [ 1, %top ], [ %69, %L10 ] | |
%46 = add nsw i64 %value_phi, -1 | |
%.elt = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %28, i64 %46, i32 0 | |
%47 = bitcast double addrspace(13)* %.elt to <4 x double> addrspace(13)* | |
%48 = load <4 x double>, <4 x double> addrspace(13)* %47, align 8 | |
%49 = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %28, i64 %46, i32 1, i32 0, i64 3 | |
%.unpack47.unpack.unpack54 = load double, double addrspace(13)* %49, align 8 | |
%.elt56 = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %31, i64 %46, i32 0 | |
%50 = bitcast double addrspace(13)* %.elt56 to <4 x double> addrspace(13)* | |
%51 = load <4 x double>, <4 x double> addrspace(13)* %50, align 8 | |
%52 = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %31, i64 %46, i32 1, i32 0, i64 3 | |
%.unpack59.unpack.unpack66 = load double, double addrspace(13)* %52, align 8 | |
%53 = fmul <4 x double> %51, %43 | |
%54 = fmul double %.unpack59.unpack.unpack66, %32 | |
%55 = fmul contract <4 x double> %48, %45 | |
%56 = fadd contract <4 x double> %53, %55 | |
%57 = fmul contract double %.unpack47.unpack.unpack54, %33 | |
%58 = fadd contract double %54, %57 | |
%.elt68 = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %36, i64 %46, i32 0 | |
%59 = bitcast double addrspace(13)* %.elt68 to <4 x double> addrspace(13)* | |
%60 = load <4 x double>, <4 x double> addrspace(13)* %59, align 8 | |
%61 = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %36, i64 %46, i32 1, i32 0, i64 3 | |
%.unpack71.unpack.unpack78 = load double, double addrspace(13)* %61, align 8 | |
%62 = fmul contract <4 x double> %41, %56 | |
%63 = fadd contract <4 x double> %62, %60 | |
%64 = fmul contract double %7, %58 | |
%65 = fadd contract double %64, %.unpack71.unpack.unpack78 | |
%.repack = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %39, i64 %46, i32 0 | |
%66 = bitcast double addrspace(13)* %.repack to <4 x double> addrspace(13)* | |
store <4 x double> %63, <4 x double> addrspace(13)* %66, align 8 | |
%67 = getelementptr inbounds { double, { [4 x double] } }, { double, { [4 x double] } } addrspace(13)* %39, i64 %46, i32 1, i32 0, i64 3 | |
store double %65, double addrspace(13)* %67, align 8 | |
%68 = icmp eq i64 %value_phi, 3 | |
%69 = add nuw nsw i64 %value_phi, 1 | |
br i1 %68, label %L78, label %L10 | |
L78: ; preds = %L10 | |
ret void | |
} | |
Select a call to descend into or ↩ to ascend. [q]uit. | |
Toggles: [o]ptimize, [w]arn, [d]ebuginfo, [s]yntax highlight for LLVM/Native. | |
Show: [L]LVM IR, [N]ative code | |
Advanced: dump [P]arams cache. | |
• ↩ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment