ОШИБКА LLVM: Невозможно выбрать: 0x5586a71270c0: f32 = Константа <1036831949> - PullRequest
0 голосов
/ 25 ноября 2018

Я получаю ошибку 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 голосов
/ 25 ноября 2018

Нашел проблему.%cmp2 = or float %conv, %a2 недопустимо, поскольку or принимает только типы int.

Совет другим новичкам, попробуйте запустить llc myfile.llvm, чтобы найти проблемы в IR LLVM.

...