We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
define internal fastcc double @preprocess_julia_tanh_1253(double) unnamed_addr !dbg !109 { top: %1 = call %jl_value_t*** @julia.ptls_states() %2 = fcmp ord double %0, 0.000000e+00, !dbg !110 br i1 %2, label %L4, label %L3, !dbg !112 L3: ; preds = %L22, %top ret double %0, !dbg !113 L4: ; preds = %top %3 = fsub double %0, %0, !dbg !114 %4 = fcmp oeq double %3, 0.000000e+00, !dbg !118 br i1 %4, label %L19, label %L17, !dbg !117 L17: ; preds = %L4 %5 = bitcast double %0 to i64, !dbg !120 %6 = and i64 %5, -9223372036854775808, !dbg !120 %7 = or i64 %6, 4607182418800017408, !dbg !120 %8 = bitcast i64 %7 to double, !dbg !121 ret double %8, !dbg !121 L19: ; preds = %L4 %9 = call double @llvm.fabs.f64(double %0), !dbg !122 %10 = fcmp uge double %9, 2.200000e+01, !dbg !124 br i1 %10, label %L42, label %L22, !dbg !125 L22: ; preds = %L19 %11 = fcmp uge double %9, 0x3E30000000000000, !dbg !126 br i1 %11, label %L26, label %L3, !dbg !127 L26: ; preds = %L22 %12 = fcmp ult double %9, 1.000000e+00, !dbg !128 br i1 %12, label %L34, label %L28, !dbg !130 L28: ; preds = %L26 %13 = fmul double %9, 2.000000e+00, !dbg !131 %14 = call cc37 nonnull %jl_value_t addrspace(10)* bitcast (%jl_value_t addrspace(10)* (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)**, i32)* @jl_f_tuple to %jl_value_t addrspace(10)* (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)*)*)(%jl_value_t addrspace(10)* addrspacecast (%jl_value_t* null to %jl_value_t addrspace(10)*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873808773664 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873788832384 to %jl_value_t*) to %jl_value_t addrspace(10)*)), !dbg !133 %15 = call %jl_value_t addrspace(10)* @julia.typeof(%jl_value_t addrspace(10)* nonnull %14), !dbg !133 %16 = call %jl_value_t addrspace(10)* @julia.typeof(%jl_value_t addrspace(10)* nonnull %15), !dbg !133 %17 = icmp eq %jl_value_t addrspace(10)* %16, addrspacecast (%jl_value_t* inttoptr (i64 139873741882160 to %jl_value_t*) to %jl_value_t addrspace(10)*), !dbg !133 br i1 %17, label %pass, label %fail, !dbg !133 L34: ; preds = %L26 %18 = fmul double %9, -2.000000e+00, !dbg !134 %19 = call cc37 nonnull %jl_value_t addrspace(10)* bitcast (%jl_value_t addrspace(10)* (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)**, i32)* @jl_f_tuple to %jl_value_t addrspace(10)* (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)*)*)(%jl_value_t addrspace(10)* addrspacecast (%jl_value_t* null to %jl_value_t addrspace(10)*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873808773664 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873788832384 to %jl_value_t*) to %jl_value_t addrspace(10)*)), !dbg !136 %20 = call %jl_value_t addrspace(10)* @julia.typeof(%jl_value_t addrspace(10)* nonnull %19), !dbg !136 %21 = call %jl_value_t addrspace(10)* @julia.typeof(%jl_value_t addrspace(10)* nonnull %20), !dbg !136 %22 = icmp eq %jl_value_t addrspace(10)* %21, addrspacecast (%jl_value_t* inttoptr (i64 139873741882160 to %jl_value_t*) to %jl_value_t addrspace(10)*), !dbg !136 br i1 %22, label %pass7, label %fail6, !dbg !136 L42: ; preds = %pass11, %pass4, %L19 %value_phi5 = phi double [ %43, %pass4 ], [ %58, %pass11 ], [ 1.000000e+00, %L19 ] %23 = bitcast double %value_phi5 to i64, !dbg !137 %24 = bitcast double %0 to i64, !dbg !137 %25 = and i64 %24, -9223372036854775808, !dbg !137 %26 = and i64 %23, 9223372036854775807, !dbg !137 %27 = or i64 %26, %25, !dbg !137 %28 = bitcast i64 %27 to double, !dbg !138 ret double %28, !dbg !138 fail: ; preds = %L28 %29 = addrspacecast %jl_value_t addrspace(10)* %15 to %jl_value_t addrspace(12)*, !dbg !133 call void @jl_type_error(i8* nonnull inttoptr (i64 41541232 to i8*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873741882160 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(12)* %29), !dbg !133 unreachable, !dbg !133 pass: ; preds = %L28 %30 = addrspacecast %jl_value_t addrspace(10)* %15 to %jl_value_t addrspace(11)*, !dbg !133 %31 = bitcast %jl_value_t addrspace(11)* %30 to %jl_value_t addrspace(10)* addrspace(11)*, !dbg !133 %32 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %31, align 8, !dbg !133, !tbaa !86, !invariant.load !4 %33 = addrspacecast %jl_value_t addrspace(10)* %32 to %jl_value_t addrspace(12)*, !dbg !133 %34 = icmp eq %jl_value_t addrspace(12)* %33, addrspacecast (%jl_value_t* inttoptr (i64 139873742360480 to %jl_value_t*) to %jl_value_t addrspace(12)*), !dbg !133 br i1 %34, label %pass2, label %fail1, !dbg !133 fail1: ; preds = %pass %35 = addrspacecast %jl_value_t addrspace(10)* %14 to %jl_value_t addrspace(12)*, !dbg !133 call void @jl_type_error(i8* nonnull inttoptr (i64 41541232 to i8*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873742360560 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(12)* %35), !dbg !133 unreachable, !dbg !133 pass2: ; preds = %pass %36 = bitcast %jl_value_t addrspace(10)* %14 to i64 addrspace(10)*, !dbg !133 %37 = load i64, i64 addrspace(10)* %36, align 8, !dbg !133, !tbaa !90 %38 = icmp eq i64 %37, 0, !dbg !133 br i1 %38, label %fail3, label %pass4, !dbg !133 fail3: ; preds = %pass2 call void @jl_throw(%jl_value_t addrspace(12)* addrspacecast (%jl_value_t* inttoptr (i64 139873749195808 to %jl_value_t*) to %jl_value_t addrspace(12)*)), !dbg !133 unreachable, !dbg !133 pass4: ; preds = %pass2 %39 = inttoptr i64 %37 to double (double)*, !dbg !133 %40 = call double %39(double %13), !dbg !133 %41 = fadd double %40, 2.000000e+00, !dbg !139 %42 = fdiv double 2.000000e+00, %41, !dbg !141 %43 = fsub double 1.000000e+00, %42, !dbg !142 br label %L42, !dbg !140 fail6: ; preds = %L34 %44 = addrspacecast %jl_value_t addrspace(10)* %20 to %jl_value_t addrspace(12)*, !dbg !136 call void @jl_type_error(i8* nonnull inttoptr (i64 41541232 to i8*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873741882160 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(12)* %44), !dbg !136 unreachable, !dbg !136 pass7: ; preds = %L34 %45 = addrspacecast %jl_value_t addrspace(10)* %20 to %jl_value_t addrspace(11)*, !dbg !136 %46 = bitcast %jl_value_t addrspace(11)* %45 to %jl_value_t addrspace(10)* addrspace(11)*, !dbg !136 %47 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(11)* %46, align 8, !dbg !136, !tbaa !86, !invariant.load !4 %48 = addrspacecast %jl_value_t addrspace(10)* %47 to %jl_value_t addrspace(12)*, !dbg !136 %49 = icmp eq %jl_value_t addrspace(12)* %48, addrspacecast (%jl_value_t* inttoptr (i64 139873742360480 to %jl_value_t*) to %jl_value_t addrspace(12)*), !dbg !136 br i1 %49, label %pass9, label %fail8, !dbg !136 fail8: ; preds = %pass7 %50 = addrspacecast %jl_value_t addrspace(10)* %19 to %jl_value_t addrspace(12)*, !dbg !136 call void @jl_type_error(i8* nonnull inttoptr (i64 41541232 to i8*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 139873742360560 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(12)* %50), !dbg !136 unreachable, !dbg !136 pass9: ; preds = %pass7 %51 = bitcast %jl_value_t addrspace(10)* %19 to i64 addrspace(10)*, !dbg !136 %52 = load i64, i64 addrspace(10)* %51, align 8, !dbg !136, !tbaa !90 %53 = icmp eq i64 %52, 0, !dbg !136 br i1 %53, label %fail10, label %pass11, !dbg !136 fail10: ; preds = %pass9 call void @jl_throw(%jl_value_t addrspace(12)* addrspacecast (%jl_value_t* inttoptr (i64 139873749195808 to %jl_value_t*) to %jl_value_t addrspace(12)*)), !dbg !136 unreachable, !dbg !136 pass11: ; preds = %pass9 %54 = inttoptr i64 %52 to double (double)*, !dbg !136 %55 = call double %54(double %18), !dbg !136 %56 = fsub double -0.000000e+00, %55, !dbg !143 %57 = fadd double %55, 2.000000e+00, !dbg !145 %58 = fdiv double %56, %57, !dbg !146 br label %L42, !dbg !146 }
@code_llvm tanh(2.0) ; @ special/hyperbolic.jl:138 within `tanh' define double @julia_tanh_135(double) { top: ; @ special/hyperbolic.jl:151 within `tanh' ; ┌ @ float.jl:536 within `isnan' ; │┌ @ float.jl:456 within `!=' %1 = fcmp ord double %0, 0.000000e+00 ; └└ br i1 %1, label %L4, label %L3 L3: ; preds = %L22, %top ; @ special/hyperbolic.jl:152 within `tanh' ret double %0 L4: ; preds = %top ; @ special/hyperbolic.jl:153 within `tanh' ; ┌ @ float.jl:564 within `isinf' ; │┌ @ float.jl:554 within `isfinite' ; ││┌ @ float.jl:403 within `-' %2 = fsub double %0, %0 ; ││└ ; ││┌ @ float.jl:488 within `==' @ float.jl:454 %3 = fcmp oeq double %2, 0.000000e+00 ; └└└ br i1 %3, label %L19, label %L17 L17: ; preds = %L4 ; @ special/hyperbolic.jl:154 within `tanh' ; ┌ @ floatfuncs.jl:5 within `copysign' %4 = bitcast double %0 to i64 %5 = and i64 %4, -9223372036854775808 %6 = or i64 %5, 4607182418800017408 ; └ %7 = bitcast i64 %6 to double ret double %7 L19: ; preds = %L4 ; @ special/hyperbolic.jl:157 within `tanh' ; ┌ @ float.jl:528 within `abs' %8 = call double @llvm.fabs.f64(double %0) ; └ ; @ special/hyperbolic.jl:158 within `tanh' ; ┌ @ float.jl:458 within `<' %9 = fcmp uge double %8, 2.200000e+01 ; └ br i1 %9, label %L42, label %L22 L22: ; preds = %L19 ; @ special/hyperbolic.jl:160 within `tanh' ; ┌ @ float.jl:458 within `<' %10 = fcmp uge double %8, 0x3E30000000000000 ; └ br i1 %10, label %L26, label %L3 L26: ; preds = %L22 ; @ special/hyperbolic.jl:163 within `tanh' ; ┌ @ operators.jl:350 within `>=' ; │┌ @ float.jl:460 within `<=' %11 = fcmp ult double %8, 1.000000e+00 ; └└ br i1 %11, label %L34, label %L28 L28: ; preds = %L26 ; @ special/hyperbolic.jl:165 within `tanh' ; ┌ @ float.jl:405 within `*' %12 = fmul double %8, 2.000000e+00 ; └ ; ┌ @ math.jl:366 within `expm1' %13 = call double inttoptr (i64 140691799529184 to double (double)*)(double %12) ; └ ; @ special/hyperbolic.jl:166 within `tanh' ; ┌ @ float.jl:401 within `+' %14 = fadd double %13, 2.000000e+00 ; └ ; ┌ @ float.jl:407 within `/' %15 = fdiv double 2.000000e+00, %14 ; └ ; ┌ @ float.jl:403 within `-' %16 = fsub double 1.000000e+00, %15 ; └ br label %L42 L34: ; preds = %L26 ; @ special/hyperbolic.jl:169 within `tanh' ; ┌ @ float.jl:405 within `*' %17 = fmul double %8, -2.000000e+00 ; └ ; ┌ @ math.jl:366 within `expm1' %18 = call double inttoptr (i64 140691799529184 to double (double)*)(double %17) ; └ ; @ special/hyperbolic.jl:170 within `tanh' ; ┌ @ float.jl:393 within `-' %19 = fsub double -0.000000e+00, %18 ; └ ; ┌ @ float.jl:401 within `+' %20 = fadd double %18, 2.000000e+00 ; └ ; ┌ @ float.jl:407 within `/' %21 = fdiv double %19, %20 br label %L42 L42: ; preds = %L34, %L28, %L19 %value_phi1 = phi double [ %16, %L28 ], [ %21, %L34 ], [ 1.000000e+00, %L19 ] ; └ ; @ special/hyperbolic.jl:176 within `tanh' ; ┌ @ floatfuncs.jl:5 within `copysign' %22 = bitcast double %value_phi1 to i64 %23 = bitcast double %0 to i64 %24 = and i64 %23, -9223372036854775808 %25 = and i64 %22, 9223372036854775807 %26 = or i64 %25, %24 ; └ %27 = bitcast i64 %26 to double ret double %27 }
The text was updated successfully, but these errors were encountered:
vchuravy
No branches or pull requests
The text was updated successfully, but these errors were encountered: