https://github.com/tbaederr updated 
https://github.com/llvm/llvm-project/pull/154941

>From 65e44aac082f0b2701ad58b59f2becf9dcbbeeea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timm=20B=C3=A4der?= <tbae...@redhat.com>
Date: Fri, 22 Aug 2025 15:10:46 +0200
Subject: [PATCH] [clang] Fix ignoring converted first arg of elementwise_fma

Fixes #154900
---
 clang/lib/Sema/SemaChecking.cpp              | 1 +
 clang/test/Sema/constant-builtins-vector.cpp | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 1d3cd58c77dc5..6e777fb9aec8e 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -15955,6 +15955,7 @@ bool Sema::BuiltinElementwiseTernaryMath(
       return true;
   }
 
+  TheCall->setArg(0, Args[0]);
   for (int I = 1; I < 3; ++I) {
     if (Args[0]->getType().getCanonicalType() !=
         Args[I]->getType().getCanonicalType()) {
diff --git a/clang/test/Sema/constant-builtins-vector.cpp 
b/clang/test/Sema/constant-builtins-vector.cpp
index 9c52a2ab20c7e..5b5b9fb916174 100644
--- a/clang/test/Sema/constant-builtins-vector.cpp
+++ b/clang/test/Sema/constant-builtins-vector.cpp
@@ -957,3 +957,6 @@ static_assert(fmaDouble1[0] == 5.0);
 static_assert(fmaDouble1[1] == 10.0);
 static_assert(fmaDouble1[2] == 17.0);
 static_assert(fmaDouble1[3] == 26.0);
+
+constexpr float fmaArray[] = {2.0f, 2.0f, 2.0f, 2.0f};
+constexpr float fmaResult = __builtin_elementwise_fma(fmaArray[1], 
fmaArray[2], fmaArray[3]);

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to