[llvm-dev] "Didn't provide enough results" assertion
m m via llvm-dev
llvm-dev at lists.llvm.org
Thu Jan 17 09:41:30 PST 2019
Quick update: If I add an output register, the assertion goes away.
def ASTI: F<0b100001,(outs CPURegs:$ra),(ins i32imm:$i10s),"ASTI $i10s",[(set CPURegs:$ra, (i32 (add (i32 SP), (i32 sext12To32Trunc2imm:$i10s))))] > {
Why can't this instruction be without output register?
________________________________
From: m m
Sent: Saturday, January 12, 2019 1:58 PM
To: via llvm-dev
Subject: "Didn't provide enough results" assertion
Hi,
I am getting this assertion when building my project: `Ops.size() >= NumSrcResults && "Didn't provide enough results"'
this is the instruction that causes it:
def ASTI: F<0b100001,(outs),(ins i32imm:$i10s),"ASTI $i10s",[(set SP, (i32 (add (i32 SP), (i32 sext12To32Trunc2imm:$i10s))))] > {
let isReMaterializable = 1;
let mayLoad = 0;
let mayStore = 0;
let Defs = [SP];
let Uses = [SP];
}
I've been staring at it for a while and can't identify what the problem is. It is supposed to add an immediate to the SP and store the result back in SP (i.e. SP = SP + i10s). When I print Ops.size() and NumSrcResults, I get 0 and 2
Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190117/6079d66a/attachment.html>
More information about the llvm-dev
mailing list