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