Anastasia added inline comments.
================ Comment at: clang/docs/LanguageExtensions.rst:481 = yes yes yes yes -:? [#]_ yes -- yes -- +?: yes -- yes -- sizeof yes yes yes yes ---------------- I think it was more clear as a footnote though. ================ Comment at: clang/docs/LanguageExtensions.rst:489 +Note that ternary operator(?:) has different behaviors depends on the vector type of +the condition operands. If the condition is a GNU vector (i.e. __vector_size__), ---------------- has different behaviors depends on -> has different behaviors depending on ================ Comment at: clang/docs/LanguageExtensions.rst:493 +If it's an extension (OpenCL) vector, it's only available in C and OpenCL C. And it +selects base on signedness of the condition operands. + ---------------- Maybe we can add a reference to OpenCL C section 6.3.9 ================ Comment at: clang/lib/Sema/SemaExpr.cpp:7484 + // Only ext vector is allowed + if (const auto *VecCondTy = Cond->getType()->getAs<ExtVectorType>()) { + QualType EleTy = VecCondTy->getElementType(); ---------------- Why do you need this change? I believe OpenCL makes the same restriction. ================ Comment at: clang/lib/Sema/SemaExpr.cpp:7975 + // condition and result type. + QualType CondTy = Cond.get()->getType(); + if (CondTy->isExtVectorType()) { ---------------- Do you know where it is done for OpenCL? I think we should try to share the same code... Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80574/new/ https://reviews.llvm.org/D80574 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits