EnzymeAD / EnzymeAD/Enzyme.jl

`cannot handle unknown binary operator` with `SLEEFPirates.jl`

Open
#1,671 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
586
Forks
108
Avg merge
1d 5h
Merged PRs (30d)
44

Description

```julia
using Enzyme, SLEEFPirates

Enzyme.gradient(Reverse, SLEEFPirates.gelu, 1.0f0)
```

Error Message

```julia
ERROR: Enzyme execution failed.
Enzyme compilation failed.
Current scope:
; Function Attrs: mustprogress nofree readonly willreturn
define internal fastcc "enzyme_type"="{[-1]:Float@float}" float @preprocess_julia____103_3150({} addrspace(10)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(4) "enzyme_type"="{[-1]:Pointer, [-1,-1]:Float@float}" "enzymejl_parmtype"="139921879834320" "enzymejl_parmtype_ref"="2" %0) unnamed_addr #7 !dbg !242 {
top:
%1 = call {}*** @julia.get_pgcstack() #9
%ptls_field13 = getelementptr inbounds {}**, {}*** %1, i64 2
%2 = bitcast {}*** %ptls_field13 to i64***
%ptls_load1415 = load i64**, i64*** %2, align 8, !tbaa !9
%3 = getelementptr inbounds i64*, i64** %ptls_load1415, i64 2
%safepoint = load i64*, i64** %3, align 8, !tbaa !13
fence syncscope("singlethread") seq_cst
call void @julia.safepoint(i64* %safepoint) #9, !dbg !243
fence syncscope("singlethread") seq_cst
%4 = addrspacecast {} addrspace(10)* %0 to float addrspace(11)*, !dbg !244
%5 = load float, float addrspace(11)* %4, align 4, !dbg !244, !tbaa !28, !alias.scope !32, !noalias !35
%6 = fmul fast float %5, 0x3FE6A09E60000000, !dbg !249
%7 = call float @llvm.fabs.f32(float %6) #9, !dbg !252
%8 = fcmp uge float %7, 0x3FE5555560000000, !dbg !254
%9 = fmul float %6, %6, !dbg !256
br i1 %8, label %L18, label %L8, !dbg !258

L8: ; preds = %top
%10 = fmul contract float %9, 0x3F43F90760000000, !dbg !259
%11 = fsub contract float 0x3F7488D1A0000000, %10, !dbg !259
%12 = fmul contract float %9, %11, !dbg !263
%13 = fadd contract float %12, 0xBF9B6C3E80000000, !dbg !263
%14 = fmul contract float %9, %13, !dbg !267
%15 = fadd contract float %14, 0x3FBCE1E440000000, !dbg !267
%16 = fmul contract float %9, %15, !dbg !271
%17 = fadd contract float %16, 0xBFD8126FC0000000, !dbg !271
%18 = fmul contract float %9, %17, !dbg !275
%19 = fadd contract float %18, 0x3FF20DD740000000, !dbg !275
%20 = fmul float %6, %19, !dbg !279
br label %L73, !dbg !281

L18: ; preds = %top
%21 = fadd float %7, 1.000000e+00, !dbg !282
%22 = fdiv fast float %7, %21, !dbg !284
%23 = fadd float %22, 0xBFD99999A0000000, !dbg !286
%24 = fcmp ugt float %9, 0x40561814A0000000, !dbg !288
br i1 %24, label %L45, label %L36, !dbg !290

L36: ; preds = %L18
%25 = fmul float %9, 0xBFF7154760000000, !dbg !292
%26 = call float @llvm.rint.f32(float %25) #9, !dbg !294
%27 = fmul contract float %26, 0x3F2BD01060000000, !dbg !297
%28 = fmul contract float %26, 0xBFE6300000000000, !dbg !301
%29 = fsub contract float %28, %9, !dbg !301
%30 = fadd contract float %27, %29, !dbg !297
%31 = fmul contract float %30, 0x3F56EF19E0000000, !dbg !306
%32 = fadd contract float %31, 0x3F8131B160000000, !dbg !306
%33 = fmul contract float %30, %32, !dbg !310
%34 = fadd contract float %33, 0x3FA5552AE0000000, !dbg !310
%35 = fmul contract float %30, %34, !dbg !314
%36 = fadd contract float %35, 0x3FC55534A0000000, !dbg !314
%37 = fmul contract float %30, %36, !dbg !318
%38 = fadd contract float %37, 5.000000e-01, !dbg !318
%39 = fmul float %30, %30, !dbg !322
%40 = fmul contract float %39, %38, !dbg !324
%41 = fadd contract float %30, %40, !dbg !324
%42 = fadd float %41, 1.000000e+00, !dbg !328
%43 = call float @llvm.floor.f32(float %26) #9, !dbg !330
%44 = fadd float %43, 0x4168000000000000, !dbg !334
%bitcast_coercion = bitcast float %44 to i32, !dbg !336
%bitcast_coercion3 = bitcast float %42 to i32, !dbg !337
%45 = shl i32 %bitcast_coercion, 23, !dbg !339
%46 = add i32 %45, %bitcast_coercion3, !dbg !341
%bitcast_coercion4 = bitcast i32 %46 to float, !dbg !343
br label %L45, !dbg !343

L45: ; preds = %L36, %L18
%value_phi5 = phi float [ %bitcast_coercion4, %L36 ], [ 0.000000e+00, %L18 ]
%47 = fmul contract float %23, 0x400506C220000000, !dbg !344
%48 = fsub contract float 0x401ACFC760000000, %47, !dbg !344
%49 = fmul contract float %23, %48, !dbg !348
%50 = fadd contract float %49, 0xC019A350A0000000, !dbg !348
%51 = fmul contract float %23, %50, !dbg !352
%52 = fadd contract float %51, 0x400A160C60000000, !dbg !352
%53 = fmul contract float %23, %52, !dbg !356
%54 = fadd contract float %53, 0xBFF5D50CA0000000, !dbg !356
%55 = fmul contract float %23, %54, !dbg !360
%56 = fadd contract float %55, 0x3FC400DE00000000, !dbg !360
%57 = fmul contract float %23, %56, !dbg !364
%58 = fadd contract float %57, 0x3FC22EB8E0000000, !dbg !364
%59 = fmul contract float %23, %58, !dbg !368
%60 = fadd contract float %59, 0x3FD8994DC0000000, !dbg !368
%61 = fmul contract float %23, %60, !dbg !372
%62 = fadd contract float %61, 0x3FC4870500000000, !dbg !372
%63 = fmul contract float %23, %62, !dbg !376
%64 = fadd contract float %63, 0xBFF2314C40000000, !dbg !376
%65 = fmul contract float %23, %64, !dbg !380
%66 = fadd contract float %65, 0x3FE141D160000000, !dbg !380
%67 = fmul float %66, %value_phi5, !dbg !384
%68 = fsub float 1.000000e+00, %67, !dbg !386
%69 = fcmp uge float %6, 0.000000e+00, !dbg !388
%70 = fneg float %68, !dbg !390
%71 = select i1 %69, float %68, float %70, !dbg !392
%72 = fcmp oeq float %7, 0x7FF0000000000000, !dbg !394
%73 = fcmp ule float %6, 0.000000e+00, !dbg !396
%74 = select i1 %73, float 0.000000e+00, float 1.000000e+00, !dbg !399
%75 = select i1 %69, float 0.000000e+00, float 1.000000e+00, !dbg !401
%76 = fsub float %74, %75, !dbg !403
%77 = select i1 %72, float %76, float %71, !dbg !405
br label %L73, !dbg !407

L73: ; preds = %L45, %L8
%value_phi = phi float [ %77, %L45 ], [ %20, %L8 ]
%78 = fmul fast float %value_phi, 5.000000e-01, !dbg !249
%79 = fadd fast float %78, 5.000000e-01, !dbg !249
%80 = fmul fast float %79, %5, !dbg !408
ret float %80, !dbg !408
}

; Function Attrs: mustprogress nofree readonly willreturn
define internal fastcc "enzyme_type"="{[-1]:Float@float}" float @preprocess_julia____103_3150({} addrspace(10)* nocapture nofree noundef nonnull readonly align 4 dereferenceable(4) "enzyme_type"="{[-1]:Pointer, [-1,-1]:Float@float}" "enzymejl_parmtype"="139921879834320" "enzymejl_parmtype_ref"="2" %0) unnamed_addr #7 !dbg !242 {
top:
%1 = call {}*** @julia.get_pgcstack() #9
%ptls_field13 = getelementptr inbounds {}**, {}*** %1, i64 2
%2 = bitcast {}*** %ptls_field13 to i64***
%ptls_load1415 = load i64**, i64*** %2, align 8, !tbaa !9
%3 = getelementptr inbounds i64*, i64** %ptls_load1415, i64 2
%safepoint = load i64*, i64** %3, align 8, !tbaa !13
fence syncscope("singlethread") seq_cst
call void @julia.safepoint(i64* %safepoint) #9, !dbg !243
fence syncscope("singlethread") seq_cst
%4 = addrspacecast {} addrspace(10)* %0 to float addrspace(11)*, !dbg !244
%5 = load float, float addrspace(11)* %4, align 4, !dbg !244, !tbaa !28, !alias.scope !32, !noalias !35
%6 = fmul fast float %5, 0x3FE6A09E60000000, !dbg !249
%7 = call float @llvm.fabs.f32(float %6) #9, !dbg !252
%8 = fcmp uge float %7, 0x3FE5555560000000, !dbg !254
%9 = fmul float %6, %6, !dbg !256
br i1 %8, label %L18, label %L8, !dbg !258

L8: ; preds = %top
%10 = fmul contract float %9, 0x3F43F90760000000, !dbg !259
%11 = fsub contract float 0x3F7488D1A0000000, %10, !dbg !259
%12 = fmul contract float %9, %11, !dbg !263
%13 = fadd contract float %12, 0xBF9B6C3E80000000, !dbg !263
%14 = fmul contract float %9, %13, !dbg !267
%15 = fadd contract float %14, 0x3FBCE1E440000000, !dbg !267
%16 = fmul contract float %9, %15, !dbg !271
%17 = fadd contract float %16, 0xBFD8126FC0000000, !dbg !271
%18 = fmul contract float %9, %17, !dbg !275
%19 = fadd contract float %18, 0x3FF20DD740000000, !dbg !275
%20 = fmul float %6, %19, !dbg !279
br label %L73, !dbg !281

L18: ; preds = %top
%21 = fadd float %7, 1.000000e+00, !dbg !282
%22 = fdiv fast float %7, %21, !dbg !284
%23 = fadd float %22, 0xBFD99999A0000000, !dbg !286
%24 = fcmp ugt float %9, 0x40561814A0000000, !dbg !288
br i1 %24, label %L45, label %L36, !dbg !290

L36: ; preds = %L18
%25 = fmul float %9, 0xBFF7154760000000, !dbg !292
%26 = call float @llvm.rint.f32(float %25) #9, !dbg !294
%27 = fmul contract float %26, 0x3F2BD01060000000, !dbg !297
%28 = fmul contract float %26, 0xBFE6300000000000, !dbg !301
%29 = fsub contract float %28, %9, !dbg !301
%30 = fadd contract float %27, %29, !dbg !297
%31 = fmul contract float %30, 0x3F56EF19E0000000, !dbg !306
%32 = fadd contract float %31, 0x3F8131B160000000, !dbg !306
%33 = fmul contract float %30, %32, !dbg !310
%34 = fadd contract float %33, 0x3FA5552AE0000000, !dbg !310
%35 = fmul contract float %30, %34, !dbg !314
%36 = fadd contract float %35, 0x3FC55534A0000000, !dbg !314
%37 = fmul contract float %30, %36, !dbg !318
%38 = fadd contract float %37, 5.000000e-01, !dbg !318
%39 = fmul float %30, %30, !dbg !322
%40 = fmul contract float %39, %38, !dbg !324
%41 = fadd contract float %30, %40, !dbg !324
%42 = fadd float %41, 1.000000e+00, !dbg !328
%43 = call float @llvm.floor.f32(float %26) #9, !dbg !330
%44 = fadd float %43, 0x4168000000000000, !dbg !334
%bitcast_coercion = bitcast float %44 to i32, !dbg !336
%bitcast_coercion3 = bitcast float %42 to i32, !dbg !337
%45 = shl i32 %bitcast_coercion, 23, !dbg !339
%46 = add i32 %45, %bitcast_coercion3, !dbg !341
%bitcast_coercion4 = bitcast i32 %46 to float, !dbg !343
br label %L45, !dbg !343

L45: ; preds = %L36, %L18
%value_phi5 = phi float [ %bitcast_coercion4, %L36 ], [ 0.000000e+00, %L18 ]
%47 = fmul contract float %23, 0x400506C220000000, !dbg !344
%48 = fsub contract float 0x401ACFC760000000, %47, !dbg !344
%49 = fmul contract float %23, %48, !dbg !348
%50 = fadd contract float %49, 0xC019A350A0000000, !dbg !348
%51 = fmul contract float %23, %50, !dbg !352
%52 = fadd contract float %51, 0x400A160C60000000, !dbg !352
%53 = fmul contract float %23, %52, !dbg !356
%54 = fadd contract float %53, 0xBFF5D50CA0000000, !dbg !356
%55 = fmul contract float %23, %54, !dbg !360
%56 = fadd contract float %55, 0x3FC400DE00000000, !dbg !360
%57 = fmul contract float %23, %56, !dbg !364
%58 = fadd contract float %57, 0x3FC22EB8E0000000, !dbg !364
%59 = fmul contract float %23, %58, !dbg !368
%60 = fadd contract float %59, 0x3FD8994DC0000000, !dbg !368
%61 = fmul contract float %23, %60, !dbg !372
%62 = fadd contract float %61, 0x3FC4870500000000, !dbg !372
%63 = fmul contract float %23, %62, !dbg !376
%64 = fadd contract float %63, 0xBFF2314C40000000, !dbg !376
%65 = fmul contract float %23, %64, !dbg !380
%66 = fadd contract float %65, 0x3FE141D160000000, !dbg !380
%67 = fmul float %66, %value_phi5, !dbg !384
%68 = fsub float 1.000000e+00, %67, !dbg !386
%69 = fcmp uge float %6, 0.000000e+00, !dbg !388
%70 = fneg float %68, !dbg !390
%71 = select i1 %69, float %68, float %70, !dbg !392
%72 = fcmp oeq float %7, 0x7FF0000000000000, !dbg !394
%73 = fcmp ule float %6, 0.000000e+00, !dbg !396
%74 = select i1 %73, float 0.000000e+00, float 1.000000e+00, !dbg !399
%75 = select i1 %69, float 0.000000e+00, float 1.000000e+00, !dbg !401
%76 = fsub float %74, %75, !dbg !403
%77 = select i1 %72, float %76, float %71, !dbg !405
br label %L73, !dbg !407

L73: ; preds = %L45, %L8
%value_phi = phi float [ %77, %L45 ], [ %20, %L8 ]
%78 = fmul fast float %value_phi, 5.000000e-01, !dbg !249
%79 = fadd fast float %78, 5.000000e-01, !dbg !249
%80 = fmul fast float %79, %5, !dbg !408
ret float %80, !dbg !408
}

constantarg[{} addrspace(10)* %0] = 0 type: {[-1]:Pointer, [-1,-1]:Float@float} - vals: {}
constantinst[ %1 = call {}*** @julia.get_pgcstack() #9] = 1 val:1 type: {[-1]:Pointer, [-1,16]:Pointer}
constantinst[ %ptls_field13 = getelementptr inbounds {}**, {}*** %1, i64 2] = 1 val:1 type: {[-1]:Pointer, [-1,0]:Pointer}
constantinst[ %2 = bitcast {}*** %ptls_field13 to i64***] = 1 val:1 type: {[-1]:Pointer, [-1,0]:Pointer}
constantinst[ %ptls_load1415 = load i64**, i64*** %2, align 8, !tbaa !9] = 1 val:1 type: {[-1]:Pointer}
constantinst[ %3 = getelementptr inbounds i64*, i64** %ptls_load1415, i64 2] = 1 val:1 type: {[-1]:Pointer}
constantinst[ %safepoint = load i64*, i64** %3, align 8, !tbaa !13] = 1 val:1 type: {}
constantinst[ fence syncscope("singlethread") seq_cst] = 1 val:1 type: {}
constantinst[ call void @julia.safepoint(i64* %safepoint) #9, !dbg !15] = 1 val:1 type: {}
constantinst[ fence syncscope("singlethread") seq_cst] = 1 val:1 type: {}
constantinst[ %4 = addrspacecast {} addrspace(10)* %0 to float addrspace(11)*, !dbg !16] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@float}
constantinst[ %5 = load float, float addrspace(11)* %4, align 4, !dbg !16, !tbaa !28, !alias.scope !32, !noalias !35] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %6 = fmul fast float %5, 0x3FE6A09E60000000, !dbg !40] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %7 = call float @llvm.fabs.f32(float %6) #9, !dbg !48] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %8 = fcmp uge float %7, 0x3FE5555560000000, !dbg !54] = 1 val:1 type: {[-1]:Integer}
constantinst[ %9 = fmul float %6, %6, !dbg !57] = 0 val:0 type: {[-1]:Float@float}
constantinst[ br i1 %8, label %L18, label %L8, !dbg !60] = 1 val:1 type: {}
constantinst[ %10 = fmul contract float %9, 0x3F43F90760000000, !dbg !61] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %11 = fsub contract float 0x3F7488D1A0000000, %10, !dbg !61] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %12 = fmul contract float %9, %11, !dbg !69] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %13 = fadd contract float %12, 0xBF9B6C3E80000000, !dbg !69] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %14 = fmul contract float %9, %13, !dbg !73] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %15 = fadd contract float %14, 0x3FBCE1E440000000, !dbg !73] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %16 = fmul contract float %9, %15, !dbg !77] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %17 = fadd contract float %16, 0xBFD8126FC0000000, !dbg !77] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %18 = fmul contract float %9, %17, !dbg !81] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %19 = fadd contract float %18, 0x3FF20DD740000000, !dbg !81] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %20 = fmul float %6, %19, !dbg !85] = 0 val:0 type: {[-1]:Float@float}
constantinst[ br label %L73, !dbg !87] = 1 val:1 type: {}
constantinst[ %21 = fadd float %7, 1.000000e+00, !dbg !88] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %22 = fdiv fast float %7, %21, !dbg !91] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %23 = fadd float %22, 0xBFD99999A0000000, !dbg !94] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %24 = fcmp ugt float %9, 0x40561814A0000000, !dbg !97] = 1 val:1 type: {[-1]:Integer}
constantinst[ br i1 %24, label %L45, label %L36, !dbg !100] = 1 val:1 type: {}
constantinst[ %25 = fmul float %9, 0xBFF7154760000000, !dbg !104] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %26 = call float @llvm.rint.f32(float %25) #9, !dbg !106] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %27 = fmul contract float %26, 0x3F2BD01060000000, !dbg !112] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %28 = fmul contract float %26, 0xBFE6300000000000, !dbg !116] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %29 = fsub contract float %28, %9, !dbg !116] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %30 = fadd contract float %27, %29, !dbg !112] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %31 = fmul contract float %30, 0x3F56EF19E0000000, !dbg !122] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %32 = fadd contract float %31, 0x3F8131B160000000, !dbg !122] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %33 = fmul contract float %30, %32, !dbg !126] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %34 = fadd contract float %33, 0x3FA5552AE0000000, !dbg !126] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %35 = fmul contract float %30, %34, !dbg !130] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %36 = fadd contract float %35, 0x3FC55534A0000000, !dbg !130] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %37 = fmul contract float %30, %36, !dbg !134] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %38 = fadd contract float %37, 5.000000e-01, !dbg !134] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %39 = fmul float %30, %30, !dbg !138] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %40 = fmul contract float %39, %38, !dbg !140] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %41 = fadd contract float %30, %40, !dbg !140] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %42 = fadd float %41, 1.000000e+00, !dbg !144] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %43 = call float @llvm.floor.f32(float %26) #9, !dbg !146] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %44 = fadd float %43, 0x4168000000000000, !dbg !152] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %bitcast_coercion = bitcast float %44 to i32, !dbg !155] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %bitcast_coercion3 = bitcast float %42 to i32, !dbg !158] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %45 = shl i32 %bitcast_coercion, 23, !dbg !160] = 1 val:1 type: {}
constantinst[ %46 = add i32 %45, %bitcast_coercion3, !dbg !164] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %bitcast_coercion4 = bitcast i32 %46 to float, !dbg !167] = 0 val:0 type: {[-1]:Float@float}
constantinst[ br label %L45, !dbg !167] = 1 val:1 type: {}
constantinst[ %value_phi5 = phi float [ %bitcast_coercion4, %L36 ], [ 0.000000e+00, %L18 ]] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %47 = fmul contract float %23, 0x400506C220000000, !dbg !168] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %48 = fsub contract float 0x401ACFC760000000, %47, !dbg !168] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %49 = fmul contract float %23, %48, !dbg !172] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %50 = fadd contract float %49, 0xC019A350A0000000, !dbg !172] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %51 = fmul contract float %23, %50, !dbg !176] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %52 = fadd contract float %51, 0x400A160C60000000, !dbg !176] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %53 = fmul contract float %23, %52, !dbg !180] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %54 = fadd contract float %53, 0xBFF5D50CA0000000, !dbg !180] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %55 = fmul contract float %23, %54, !dbg !184] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %56 = fadd contract float %55, 0x3FC400DE00000000, !dbg !184] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %57 = fmul contract float %23, %56, !dbg !188] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %58 = fadd contract float %57, 0x3FC22EB8E0000000, !dbg !188] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %59 = fmul contract float %23, %58, !dbg !192] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %60 = fadd contract float %59, 0x3FD8994DC0000000, !dbg !192] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %61 = fmul contract float %23, %60, !dbg !196] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %62 = fadd contract float %61, 0x3FC4870500000000, !dbg !196] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %63 = fmul contract float %23, %62, !dbg !200] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %64 = fadd contract float %63, 0xBFF2314C40000000, !dbg !200] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %65 = fmul contract float %23, %64, !dbg !204] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %66 = fadd contract float %65, 0x3FE141D160000000, !dbg !204] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %67 = fmul float %66, %value_phi5, !dbg !208] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %68 = fsub float 1.000000e+00, %67, !dbg !210] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %69 = fcmp uge float %6, 0.000000e+00, !dbg !212] = 1 val:1 type: {[-1]:Integer}
constantinst[ %70 = fneg float %68, !dbg !214] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %71 = select i1 %69, float %68, float %70, !dbg !216] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %72 = fcmp oeq float %7, 0x7FF0000000000000, !dbg !219] = 1 val:1 type: {[-1]:Integer}
constantinst[ %73 = fcmp ule float %6, 0.000000e+00, !dbg !222] = 1 val:1 type: {[-1]:Integer}
constantinst[ %74 = select i1 %73, float 0.000000e+00, float 1.000000e+00, !dbg !226] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %75 = select i1 %69, float 0.000000e+00, float 1.000000e+00, !dbg !228] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %76 = fsub float %74, %75, !dbg !230] = 1 val:1 type: {[-1]:Float@float}
constantinst[ %77 = select i1 %72, float %76, float %71, !dbg !232] = 0 val:0 type: {[-1]:Float@float}
constantinst[ br label %L73, !dbg !234] = 1 val:1 type: {}
constantinst[ %value_phi = phi float [ %77, %L45 ], [ %20, %L8 ]] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %78 = fmul fast float %value_phi, 5.000000e-01, !dbg !40] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %79 = fadd fast float %78, 5.000000e-01, !dbg !40] = 0 val:0 type: {[-1]:Float@float}
constantinst[ %80 = fmul fast float %79, %5, !dbg !235] = 0 val:0 type: {[-1]:Float@float}
constantinst[ ret float %80, !dbg !235] = 1 val:1 type: {}
cannot handle unknown binary operator: %46 = add i32 %45, %bitcast_coercion3, !dbg !164

Stacktrace:
[1] +
@ ./int.jl:87
[2] _vscalef
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/exp.jl:24
[3] vscalef
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/exp.jl:11
[4] vscalef
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/exp.jl:39
[5] verf
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/verf.jl:203
[6] Φ
@ ~/.julia/packages/SLEEFPirates/jDnkW/src/rectifier.jl:7
[7] gelu
@ ~/.julia/packages/SLEEFPirates/jDnkW/src/rectifier.jl:10
[8] call_composed
@ ./operators.jl:1044
[9] #_#103
@ ./operators.jl:1041

Stacktrace:
[1] throwerr(cstr::Cstring)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/YDcYf/src/compiler.jl:1688
[2] +
@ ./int.jl:87 [inlined]
[3] _vscalef
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/exp.jl:24 [inlined]
[4] vscalef
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/exp.jl:11 [inlined]
[5] vscalef
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/exp.jl:39 [inlined]
[6] verf
@ ~/.julia/packages/VectorizationBase/LqJbS/src/special/verf.jl:203 [inlined]
[7] Φ
@ ~/.julia/packages/SLEEFPirates/jDnkW/src/rectifier.jl:7 [inlined]
[8] gelu
@ ~/.julia/packages/SLEEFPirates/jDnkW/src/rectifier.jl:10 [inlined]
[9] call_composed
@ ./operators.jl:1044 [inlined]
[10] ComposedFunction
@ ./operators.jl:1041 [inlined]
[11] diffejulia_ComposedFunction_3147wrap
@ ./operators.jl:0
[12] macro expansion
@ ~/.julia/packages/Enzyme/YDcYf/src/compiler.jl:6658 [inlined]
[13] enzyme_call
@ ~/.julia/packages/Enzyme/YDcYf/src/compiler.jl:6258 [inlined]
[14] CombinedAdjointThunk
@ ~/.julia/packages/Enzyme/YDcYf/src/compiler.jl:6135 [inlined]
[15] autodiff
@ ~/.julia/packages/Enzyme/YDcYf/src/Enzyme.jl:314 [inlined]
[16] autodiff
@ ~/.julia/packages/Enzyme/YDcYf/src/Enzyme.jl:326 [inlined]
[17] gradient(rm::ReverseMode{false, FFIABI, false}, f::typeof(gelu), x::Float32)
@ Enzyme ~/.julia/packages/Enzyme/YDcYf/src/Enzyme.jl:1023
[18] top-level scope
@ REPL[3]:1
[19] top-level scope
@ none:1
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.