Closed ghost closed 7 years ago
Would you be able to post the full stacktrace for the assertion error?
Minimised testcase
define void @foo(i16 %a) {
ifcont:
%cmp_result = icmp eq i16 %a, 255
%bool_result = uitofp i1 %cmp_result to double
%result = fcmp one double 0.000000e+00, %bool_result
br i1 %result, label %then, label %else
then:
ret void
else:
ret void
}
An empty stacktrace is given when I run this locally.
Added the testcase in tree
bd648d0c890dfcae4fbf7532d9f6afd9abaaf74b
Looking at llc
in a debugger, the operation it is failing on:
t26: i64 = select_cc t2, Constant:i16<255>, Constant:i64<4607182418800017408>, Constant:i64<0>, seteq:ch
(lldb) print Lo.getValueType()
(llvm::EVT) $2 = {
V = (SimpleTy = i64)
LLVMTy = 0x0000000000000000
}
(lldb) print Hi.getValueType()
(llvm::EVT) $3 = {
V = (SimpleTy = Glue)
LLVMTy = 0x00000000000000
It looks like we are emitting this out of our custom lowering hook.
Fixed in r288905.
I'm getting the message:
llc output:
output_1.ll code:
But with this code the error disappear (the second "if" is removed). The output_1.ll is OK when I use x86 llc.
output_2.ll code:
Does anybody know what's the problem?