https://gcc.gnu.org/g:8b8d234304abab6ae93faf92c0151fe5d290ca64

commit r16-6523-g8b8d234304abab6ae93faf92c0151fe5d290ca64
Author: Tamar Christina <[email protected]>
Date:   Tue Jan 6 15:00:44 2026 +0000

    vect: Add check for BUILT_IN_NORMAL to ifcvt [PR122103]
    
    It was reported that some AVX10 test like
    gcc.target/i386/avx10_2-vcvtbf162ibs-2.c ICEd with my
    changes.  It turns out it's due to associated_internal_fn
    only supporting BUILT_IN_NORMAL calls.
    
    This adds a check for this before calling
    associated_internal_fn.
    
    Manually tested the files since they have an effective
    target tests for hardware I don't have.
    
    gcc/ChangeLog:
    
            PR tree-optimization/122103
            * tree-if-conv.cc (ifcvt_can_predicate): Add check for
            normal builtins.

Diff:
---
 gcc/tree-if-conv.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-if-conv.cc b/gcc/tree-if-conv.cc
index 53227bd64c16..6f258a390761 100644
--- a/gcc/tree-if-conv.cc
+++ b/gcc/tree-if-conv.cc
@@ -1006,8 +1006,10 @@ ifcvt_can_predicate (gimple *stmt)
   if (gimple_assign_single_p (stmt))
     return ifcvt_can_use_mask_load_store (stmt);
 
+  tree callee;
   if (gimple_call_builtin_p (stmt))
-    if (tree callee = gimple_call_fndecl (stmt))
+    if ((callee = gimple_call_fndecl (stmt))
+       && fndecl_built_in_p (callee, BUILT_IN_NORMAL))
       {
        auto ifn = associated_internal_fn (callee);
        auto cond_ifn = get_conditional_internal_fn (ifn);

Reply via email to