[clang] [llvm] [HLSL] implement `mad` intrinsic (PR #83826)

Farzon Lotfi via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 4 10:45:22 PST 2024


================
@@ -19812,11 +19821,13 @@ bool Sema::SemaBuiltinElementwiseTernaryMath(CallExpr *TheCall) {
     Args[I] = Converted.get();
   }
 
-  int ArgOrdinal = 1;
-  for (Expr *Arg : Args) {
-    if (checkFPMathBuiltinElementType(*this, Arg->getBeginLoc(), Arg->getType(),
-                                      ArgOrdinal++))
-      return true;
+  if (enforceFloatingPointCheck) {
+    int ArgOrdinal = 1;
+    for (Expr *Arg : Args) {
+      if (checkFPMathBuiltinElementType(*this, Arg->getBeginLoc(),
+                                        Arg->getType(), ArgOrdinal++))
----------------
farzonl wrote:

The impact is it just changed the error when we use bool

Before change:
`// expected-error at -1 {{arguments are of different types ('double' vs 'bool')}}`
After change:
`// expected-error at -1 {{3rd argument must be a vector, integer or floating point type (was 'bool')}}`

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


More information about the cfe-commits mailing list