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.
This commit is contained in:
Tamar Christina
2026-01-06 15:00:44 +00:00
parent 255fa4a0ab
commit 8b8d234304

View File

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