aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPan Li <pan2.li@intel.com>2024-10-23 16:24:19 +0800
committerPan Li <pan2.li@intel.com>2024-10-29 22:19:19 +0800
commit1fdee26ee985385c8043ea0ca6ff05ffdbc34f9c (patch)
tree6aa246d8c805bb7d64f946cedf485983782def3d /gcc/fortran
parent4cfff6d413b15b38827494bb317867d86f997350 (diff)
downloadgcc-1fdee26ee985385c8043ea0ca6ff05ffdbc34f9c.zip
gcc-1fdee26ee985385c8043ea0ca6ff05ffdbc34f9c.tar.gz
gcc-1fdee26ee985385c8043ea0ca6ff05ffdbc34f9c.tar.bz2
Internal-fn: Introduce new IFN MASK_LEN_STRIDED_LOAD{STORE}
This patch would like to introduce new IFN for strided load and store. LOAD: v = MASK_LEN_STRIDED_LOAD (ptr, stride, mask, len, bias) STORE: MASK_LEN_STRIED_STORE (ptr, stride, v, mask, len, bias) The IFN target below code example similar as below void foo (int * a, int * b, int stride, int n) { for (int i = 0; i < n; i++) a[i * stride] = b[i * stride]; } The below test suites are passed for this patch. * The rv64gcv fully regression test. * The x86 bootstrap test. * The x86 fully regression test. gcc/ChangeLog: * internal-fn.cc (strided_load_direct): Add new define direct for strided load. (strided_store_direct): Ditto but for store. (expand_strided_load_optab_fn): Add new func to expand the IFN MASK_LEN_STRIDED_LOAD in middle-end. (expand_strided_store_optab_fn): Ditto but for store. (direct_strided_load_optab_supported_p): Add define for stride load optab supported. (direct_strided_store_optab_supported_p): Ditto but for store. (internal_fn_len_index): Add strided load/store len index. (internal_fn_mask_index): Ditto but for mask. (internal_fn_stored_value_index): Add strided store value index. * internal-fn.def (MASK_LEN_STRIDED_LOAD): Add new IFN for strided load. (MASK_LEN_STRIDED_STORE): Ditto but for store. * optabs.def (mask_len_strided_load_optab): Add strided load optab. (mask_len_strided_store_optab): Add strided store optab. Signed-off-by: Pan Li <pan2.li@intel.com> Co-Authored-By: Juzhe-Zhong <juzhe.zhong@rivai.ai>
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions