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);
