[PATCH] D115670: Correct behavior of Vector boolean-operations, implement vector operator-
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 13 13:39:26 PST 2021
erichkeane added inline comments.
================
Comment at: clang/lib/AST/ExprConstant.cpp:2915
case BO_EQ:
- Result = (LHSValue == RHSValue);
+ Result = -(LHSValue == RHSValue);
break;
----------------
efriedma wrote:
> Using "operator=" to assign an int to an APInt is going to lead to weird/confusing results. For example, I think this produces the wrong result if you have an int128_t vector.
Can you clarify your comment? The result type of one of these compare-ops is either an i8 or an i32 I think, so I would expect it to 'just work', right?
What problem of operator= on an APInt gives the wrong result? I guess I've never seen/don't know how to repro what you mean.
I DID try to get a test wtih a 'compare op' on an __int128 vector, but that ends up asserting in GetSignedVectorType
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D115670/new/
https://reviews.llvm.org/D115670
More information about the cfe-commits
mailing list