From: Tamar Christina Date: Tue, 6 Jan 2026 15:00:44 +0000 (+0000) Subject: vect: Add check for BUILT_IN_NORMAL to ifcvt [PR122103] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b8d234304abab6ae93faf92c0151fe5d290ca64;p=thirdparty%2Fgcc.git 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 --git a/gcc/tree-if-conv.cc b/gcc/tree-if-conv.cc index 53227bd64c1..6f258a39076 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);