LLVM错误:无法选择:0x5586a71270c0:f32 =常量<1036831949>

时间:2018-11-25 17:34:37

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

我在内部某处收到错误LLVM ERROR: Cannot select: 0x5644a6291a10: f32 = Constant<1036831949>

%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

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

1 个答案:

答案 0 :(得分:1)

发现了问题。 %cmp2 = or float %conv, %a2无效,因为or仅采用int类型。

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