]> git.ipfire.org Git - thirdparty/gcc.git/commit
IFN: Fix mask_{load,store} optab support macros
authorKewen Lin <linkw@linux.ibm.com>
Sun, 28 Jun 2020 02:17:04 +0000 (21:17 -0500)
committerGiuliano Belinassi <giuliano.belinassi@usp.br>
Mon, 17 Aug 2020 16:15:12 +0000 (13:15 -0300)
commit0e460eb019fa7333a8ee235d809d785d1f16982b
tree8d1b31d5ec9980bd95aac52528c5056c3915cb4f
parent8ec9e96c91b175529f3f83d90620951897be477f
IFN: Fix mask_{load,store} optab support macros

When I am working on IFNs for vector with length, I noticed that the
current optab support query for mask_load/mask_store looks unexpected.
The mask_load/mask_store requires two modes for convert_optab query,
but the macros direct_mask_{load,store}_optab_supported_p uses
direct_optab_supported_p which asserts type pair should have the same mode.

I'm not sure whether we have some special reason here or just a typo,
since everything goes well now, mask_{load,store} optab check is mainly
handled by can_vec_mask_load_store_p.

But if we have some codes as below (eg: one checking for all IFNs finally)

  tree_pair types = direct_internal_fn_types (ifn, call);
  if(direct_internal_fn_supported_p (ifn, types, OPTIMIZE_FOR_SPEED) ...

It will cause ICE.

gcc/ChangeLog:

* internal-fn.c (direct_mask_load_optab_supported_p): Use
convert_optab_supported_p instead of direct_optab_supported_p.
(direct_mask_store_optab_supported_p): Likewise.
gcc/internal-fn.c