Skip to content

[Bug] Code generation fails when compiling topi.fast_tanh for int16 dtype with LLVM target #18767

@Cookiee235

Description

@Cookiee235

Actual behavior

Traceback (most recent call last):
  File "/share_container/LLMFuzz/TirFuzz/results_fuzz/02-10_14-27/failure/topi.fast_tanh_4.py", line 11, in <module>
    ref_mod = tvm.build(sch.mod, target='llvm')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm-latest/python/tvm/driver/build_module.py", line 59, in build
    return tvm.tir.build(mod, target, pipeline)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm-latest/python/tvm/tir/build.py", line 239, in build
    return tir_to_runtime(host_mod, device_mod_dict, target_host)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm-latest/python/tvm/tir/build.py", line 149, in tir_to_runtime
    mhost = codegen_build(mhost_all, target_host)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm-latest/python/tvm/tir/build.py", line 131, in codegen_build
    return bf(mod, target)
           ^^^^^^^^^^^^^^^
  File "python/tvm_ffi/cython/function.pxi", line 758, in core.Function.__call__
  File "<unknown>", line 0, in tvm::codegen::LLVMModuleNode::Init(tvm::IRModule const&, tvm::Target const&)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::AddFunction(tvm::GlobalVar const&, tvm::tir::PrimFunc const&)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::AddFunctionInternal(tvm::GlobalVar const&, tvm::tir::PrimFunc const&)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  [Previous line repeated 1 more time]
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::LetStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::SeqStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::SeqStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::AssertStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::SeqStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenCPU::CreateComputeScope(tvm::tir::AttrStmtNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::CreateSerialFor(llvm::Value*, llvm::Value*, llvm::Value*, tvm::tir::Var const&, tvm::tir::Stmt const&)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitStmt_(tvm::tir::BufferStoreNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitExpr_(tvm::tir::SelectNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitExpr_(tvm::tir::DivNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitExpr_(tvm::tir::SubNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::VisitExpr_(tvm::tir::CallNode const*)
  File "<unknown>", line 0, in tvm::codegen::CodeGenLLVM::CreateIntrinsic(tvm::tir::CallNode const*)
  File "<unknown>", line 0, in tvm::runtime::detail::LogFatal::~LogFatal() [clone .constprop.0]
  File "<unknown>", line 0, in tvm::runtime::detail::LogFatal::Entry::Finalize()
tvm.error.InternalError: Check failed: (f) is false: Cannot find intrinsic declaration, possible type mismatch: llvm.exp

Environment

tvm: 0.23.dev

Steps to reproduce

import tvm
from tvm import te, topi, tir
from tvm import meta_schedule as ms


x = te.placeholder([1, 10], dtype='int16', name='x')
op_outputs = topi.fast_tanh(x)

sch = tir.Schedule(te.create_prim_func([x, op_outputs]).with_attr('target', tvm.target.Target('llvm')))
with tvm.transform.PassContext(0):
    ref_mod = tvm.build(sch.mod, target='llvm')

Triage

  • needs-triage

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triagePRs or issues that need to be investigated by maintainers to find the right assignees to address ittype: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions