================
@@ -9868,7 +9868,12 @@ static bool tryVectorConvertAndSplat(Sema &S, ExprResult
*scalar,
// if necessary.
CastKind scalarCast = CK_NoOp;
- if (vectorEltTy->isIntegralType(S.Context)) {
+ if (vectorEltTy->isBooleanType()) {
+ if (scalarTy->isIntegralType(S.Context))
+ scalarCast = CK_IntegralToBoolean;
+ else if (!scalarTy->isBooleanType())
----------------
a-tarasyuk wrote:
@shafik thanks for the feedback. I've removed uncovered cases. The _assertion
failure_ occurs because `CK_IntegralCast` is used for an implicit cast from a
`bool` vector...
https://github.com/llvm/llvm-project/blob/b6f72fc1e202c749333bd5b8ecb879d661af16b6/clang/lib/Sema/SemaExpr.cpp#L9880
https://github.com/llvm/llvm-project/blob/b6f72fc1e202c749333bd5b8ecb879d661af16b6/clang/lib/Sema/SemaExpr.cpp#L9901
I found a more specific kind, `CK_IntegralToBoolean`, which seems more relevant
to this case. However, I couldn’t find any details about this in the spec, so
I’d appreciate it if someone could clarify this specific case. Is this _kind_
not acceptable for this case?
https://github.com/llvm/llvm-project/pull/108657
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits