Exapnding add:i32 assertion failure with 2.2

My target supports only 8-bit arithmetic, hence I specified it to exapand ADD for i32 and i16.

llc fails at the following place in LegalizeDAG.cpp:

assert(MVT::isVector(Node->getValueType(0)) &&
“Cannot expand this binary operator!”);
// Expand the operation into a bunch of nasty scalar code.
Result = LegalizeOp(UnrollVectorOp(Op));

I don’t understand why it is treating i32 and i16 as vector types.
I think it was working fine in llvm2.1

Any help is welcome.

Thanks,
Sanjiv

My target supports only 8-bit arithmetic, hence I specified it to exapand
ADD for i32 and i16.

I don't have any help to offer for your precise problem, but the new
type legalization infrastructure which is being prepared (for 2.3
hopefully) should be much better at handling this kind of thing.

Best wishes,

Duncan.

Do a Node->dump(&DAG). What does Node look like?

If all else fails, do a "make clean; make" just to make sure nothing is out of sync.

Evan