[clang] [clang] Update typechecking of builtin elementwise ternary math operators (PR #155620)

Chaitanya Koparkar via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 29 02:51:07 PDT 2025


================
@@ -15884,6 +15884,55 @@ static bool checkBuiltinVectorMathMixedEnums(Sema &S, Expr *LHS, Expr *RHS,
   return false;
 }
 
+/// Check if all arguments have the same type. If the types don't match, emit an
+/// error message and return true. Otherwise return false.
+///
+/// For scalars we directly compare their unqualified types. But even if we
+/// compare unqualified vector types, a difference in qualifiers in the element
+/// types can make the vector types be considered not equal. For example,
+/// vector of 4 'const float' values vs vector of 4 'float' values.
+/// So we compare unqualified types of their elements and number of elements.
+/// See GitHub issue #155405.
----------------
ckoparkar wrote:

I see. In that case I can remove this, I've already mentioned this in the test.

https://github.com/llvm/llvm-project/pull/155620


More information about the cfe-commits mailing list