【问题标题】:LLVM ERROR: Cannot select: 0x5586a71270c0: f32 = Constant<1036831949>LLVM 错误:无法选择:0x5586a71270c0:f32 = 常量<1036831949>
【发布时间】:2018-11-25 17:34:37
【问题描述】:

我在内部某处收到错误LLVM ERROR: Cannot select: 0x5644a6291a10: f32 = Constant&lt;1036831949&gt;

%a2 = load float, float* %a
%a3 = load float, float* %a
%cmp = fcmp one float %a3, 0.000000e+00
%not = xor i1 %cmp, true
%convert = zext i1 %not to i32
%conv = sitofp i32 %convert to float
%cmp2 = or float %conv, %a2
store float %cmp2, float* %a

这里是否可能发生类型不匹配?我以前遇到过这个错误,但是在类型不匹配的情况下。不过,不确定这里出了什么问题。

【问题讨论】:

    标签: llvm llvm-clang llvm-ir llvm-c++-api


    【解决方案1】:

    发现问题。 %cmp2 = or float %conv, %a2 无效,因为 or 只接受 int 类型。

    提示其他新手,尝试运行 llc myfile.llvm 以查找 LLVM IR 中的问题。

    【讨论】:

      猜你喜欢
      • 2021-05-19
      • 1970-01-01
      • 2011-07-17
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多