[PATCH] Vselect improvements part 2

Arsenault, Matthew Matthew.Arsenault at amd.com
Tue Jun 25 00:50:06 PDT 2013


> This change looks incorrect.  The function SplitVecOp_VSETCC should split setcc nodes. Your change makes it convert the i1s return type into OutVT which may not be a legal type. 
I thought the DAG was iteratively legalized until it's done, so those would be taken care of later. As it was, the type already wasn't necessarily legal. In the example I gave, the v4i1 setccs weren't legal.

> The last part is especially suspicious. Why are you handling VSETCCs that return vector i1s or something else ? 

I didn't understand that part of the patch I started with, and meant to remove it. In that example at least, the result is the same in either case.

> The VSETCCs need to be consistent. I think that at this phase they are all i1s.

So there should never be an intermediate phase where types are changed into a different illegal type? I thought it was weird creating a setcc with something other than getSetCCResultType, but this originally already did that.




More information about the llvm-commits mailing list