@@ -1033,14 +1033,15 @@ function get_binding_or_error_fwd(B, orig, gutils, normalR, shadowR)
10331033 err = emit_error (B, orig, " Enzyme: unhandled forward for jl_get_binding_or_error" )
10341034 newo = new_from_original (gutils, orig)
10351035 API. moveBefore (newo, err, B)
1036- normal = (unsafe_load (normalR) != C_NULL ) ? LLVM. Instruction (unsafe_load (normalR)) : nothing
10371036
1038- if shadowR != C_NULL && normal != = nothing
1037+ if unsafe_load (shadowR) != C_NULL
1038+ valTys = API. CValueType[API. VT_Primal, API. VT_Primal]
1039+ args = [new_from_original (gutils, operands (orig)[1 ]), new_from_original (gutils, operands (orig)[2 ])]
1040+ normal = call_samefunc_with_inverted_bundles! (B, gutils, orig, args, valTys, #= lookup=# false )
10391041 width = get_width (gutils)
10401042 if width == 1
10411043 shadowres = normal
10421044 else
1043- position! (B, LLVM. Instruction (LLVM. API. LLVMGetNextInstruction (normal)))
10441045 shadowres = UndefValue (LLVM. LLVMType (API. EnzymeGetShadowType (width, value_type (normal))))
10451046 for idx in 1 : width
10461047 shadowres = insert_value! (B, shadowres, normal, idx- 1 )
@@ -1058,13 +1059,14 @@ function get_binding_or_error_augfwd(B, orig, gutils, normalR, shadowR, tapeR)
10581059 err = emit_error (B, orig, " Enzyme: unhandled augmented forward for jl_get_binding_or_error" )
10591060 newo = new_from_original (gutils, orig)
10601061 API. moveBefore (newo, err, B)
1061- normal = (unsafe_load (normalR) != C_NULL ) ? LLVM. Instruction (unsafe_load (normalR)) : nothing
1062- if shadowR != C_NULL && normal != = nothing
1062+ if unsafe_load (shadowR) != C_NULL
1063+ valTys = API. CValueType[API. VT_Primal, API. VT_Primal]
1064+ args = [new_from_original (gutils, operands (orig)[1 ]), new_from_original (gutils, operands (orig)[2 ])]
1065+ normal = call_samefunc_with_inverted_bundles! (B, gutils, orig, args, valTys, #= lookup=# false )
10631066 width = get_width (gutils)
10641067 if width == 1
10651068 shadowres = normal
10661069 else
1067- position! (B, LLVM. Instruction (LLVM. API. LLVMGetNextInstruction (normal)))
10681070 shadowres = UndefValue (LLVM. LLVMType (API. EnzymeGetShadowType (width, value_type (normal))))
10691071 for idx in 1 : width
10701072 shadowres = insert_value! (B, shadowres, normal, idx- 1 )
0 commit comments