JuliaHubOSS / llvm-cbe

resurrected LLVM "C Backend", with improvements
Other
811 stars 138 forks source link

Code generator does not support intrinsic function 'llvm.is.fpclass.f32' #195

Open KindDragon opened 5 months ago

KindDragon commented 5 months ago
LLVM ERROR: Code generator does not support intrinsic function 'llvm.is.fpclass.f32'!
 #0 0x0000000112278948 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/Cellar/llvm/17.0.6_1/lib/libLLVM.dylib+0x1c7e948)
 #1 0x0000000114e576bc SignalHandler(int) (/usr/local/Cellar/llvm/17.0.6_1/lib/libLLVM.dylib+0x485d6bc)
 #2 0x00007ff8087c937d (/usr/lib/system/libsystem_platform.dylib+0x7ff80046937d)
 #3 0x00007fd0c0778410 
 #4 0x00007ff8086b9a49 (/usr/lib/system/libsystem_c.dylib+0x7ff800359a49)
 #5 0x000000011320d427 llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/local/Cellar/llvm/17.0.6_1/lib/libLLVM.dylib+0x2c13427)
 #6 0x00000001140eec22 llvm::IntrinsicLowering::LowerIntrinsicCall(llvm::CallInst*) (/usr/local/Cellar/llvm/17.0.6_1/lib/libLLVM.dylib+0x3af4c22)
 #7 0x0000000106c835cb llvm_cbe::CWriter::lowerIntrinsics(llvm::Function&) (/Users/20237314/sber/tools/llvm-cbe/build/tools/llvm-cbe/llvm-cbe+0x1000175cb)
 #8 0x0000000106c8311c llvm_cbe::CWriter::runOnFunction(llvm::Function&) (/Users/20237314/sber/tools/llvm-cbe/build/tools/llvm-cbe/llvm-cbe+0x10001711c)
 #9 0x0000000114a40427 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/local/Cellar/llvm/17.0.6_1/lib/libLLVM.dylib+0x4446427)
#10 0x0000000112aad9ff llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/local/Cellar/llvm/17.0.6_1/lib/libLLVM.dylib+0x24b39ff)
#11 0x0000000106c6f4c9 compileModule(char**, llvm::LLVMContext&) (/Users/20237314/sber/tools/llvm-cbe/build/tools/llvm-cbe/llvm-cbe+0x1000034c9)
#12 0x0000000106c6df98 main (/Users/20237314/sber/tools/llvm-cbe/build/tools/llvm-cbe/llvm-cbe+0x100001f98)
#13 0x00007ff808410386 
PLEASE submit a bug report to https://github.com/Homebrew/homebrew-core/issues and include the crash backtrace.
Stack dump:
0.      Program arguments: /Users/20237314/sber/tools/llvm-cbe/build/tools/llvm-cbe/llvm-cbe host_llvm_cbe/obj/third-party/pigweed/pw_string/to_string.type_to_string.ll -o host_llvm_cbe/obj/third-party/pigweed/pw_string/to_string.type_to_string.ll.c
1.      Running pass 'Function Pass Manager' on module 'host_llvm_cbe/obj/third-party/pigweed/pw_string/to_string.type_to_string.ll'.
2.      Running pass 'C backend' on function '@_Z8isfiniteB8un170006IfLi0EEbT_'

LLVM IR:

; Function Attrs: mustprogress noinline nounwind optnone ssp uwtable
define linkonce_odr hidden noundef zeroext i1 @_Z8isfiniteB8un170006IfLi0EEbT_(float noundef %0) #0 !dbg !2477 {
  %2 = alloca float, align 4
  store float %0, ptr %2, align 4
  call void @llvm.dbg.declare(metadata ptr %2, metadata !2482, metadata !DIExpression()), !dbg !2483
  %3 = load float, ptr %2, align 4, !dbg !2484
  %4 = call i1 @llvm.is.fpclass.f32(float %3, i32 504), !dbg !2485
  ret i1 %4, !dbg !2486
}

; Function Attrs: mustprogress noinline nounwind optnone ssp uwtable
define linkonce_odr hidden noundef zeroext i1 @_Z5isnanB8un170006f(float noundef %0) #0 !dbg !2546 {
  %2 = alloca float, align 4
  store float %0, ptr %2, align 4
  call void @llvm.dbg.declare(metadata ptr %2, metadata !2547, metadata !DIExpression()), !dbg !2548
  %3 = load float, ptr %2, align 4, !dbg !2549
  %4 = call i1 @llvm.is.fpclass.f32(float %3, i32 3), !dbg !2550
  ret i1 %4, !dbg !2551
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i1 @llvm.is.fpclass.f32(float, i32 immarg) #1