如何解决llvm未定义的实验内在函数
我正在尝试编辑llvm ir代码:
define { double,double } @add(double,double,double) local_unnamed_addr #0 {
%5 = call double @llvm.experimental.constrained.fadd(double %0,double %2,metadata !"round.downward",metadata !"fpexcept.ignore")
%6 = fadd double %1,%3
%7 = insertvalue { double,double } undef,double %5,0
%8 = insertvalue { double,double } %7,double %6,1
ret { double,double } %8
}
在第2行中,使用llvm的实验内在函数,可以找到文档here
使用llvm-as编译llvm代码时,出现错误:
use of undefined value '@llvm.experimental.constrained.fadd'
我用来将其编译为二进制的代码是:
/usr/local/opt/llvm/bin/llvm-as interval.ll -o interval.bc
要使用实验性内在函数,是否需要添加特殊标志?
解决方法
将@llvm.experimental.constrained.fadd
更改为@llvm.experimental.constrained.fadd.f64
并添加声明declare double @llvm.experimental.constrained.fadd.f64(double,double,metadata,metadata)
问题是,对于llvm中使用的每个函数,您都需要在文件中的某个位置声明它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。