On 10/24/2012 04:15 PM, Marc Glisse wrote:
I don't understand how < 0 differs from != 0 for that purpose. In both
cases, the front-end will produce the extra comparison, and the
middle-end will need an optimization to detect "truth values" (vectors
of -1 and 0) and simplify trivial operations on those (<0, !=0, etc).

True; if we aren't going to assume that the operand is already a truthvalue vector, it would be the same. So let's go with != 0 after all.

(at a point, based on Richard's words but apparently not on his
suggestion, I was tempted to introduce a new boolean vector type, whose
only values are 0 and -1, but that seems a bit complicated and doesn't
answer whether x?y:z should mean x<0 or x!=0)

That would make sense to me; it would avoid the extra comparison if the condition is a boolean vector.

Jason

Reply via email to