0

我目前正在尝试使 LLVM 9.0 或更高版本(由 TF XLA 转储)与 FPGA 的 LLVM 6.0 版本兼容。

所以我从 XLA 中获取了 LLVM IR,但我需要将其转换为 LLVM-6.0 位码文件。所以我使用“llvm-as-6.0 xxx.ll”来转换文件。我已经在用户指南等的帮助下调整了大部分内容。所以我正在努力处理包含“select reassoc”的行。一个有一些上下文的例子(完整的代码在这里太长了):

  %145 = insertelement <1 x float> undef, float %144, i64 0
  %146 = fcmp reassoc nsz contract uge <1 x float> %145, <float 0xC055F33340000000>
  %147 = select reassoc nsz contract <1 x i1> %146, <1 x float> %145, <1 x float> <float 0xC055F33340000000>

例如,我得到这里的错误:

llvm-as-6.0 module_0000.ir-with-opt.ll
llvm-as: module_0000.ir-with-opt.ll:479:17: error: expected type
  %147 = select reassoc nsz contract <1 x i1> %146, <1 x float> %145, <1 x float> <float 0xC055F33340000000>

我很高兴知道,为什么这在 llvm IR 6.0 或更低版本中不起作用,因为 select 和 reassoc 分别工作得很好。我也不知道可能缺少什么类型。这个例子的解决方案当然会很棒。

4

0 回答 0