cleanup: Change LEN_MASK into MASK_LEN

Hi.

Since start from LEN_MASK_GATHER_LOAD/LEN_MASK_SCATTER_STORE, COND_LEN_* patterns,
the order of len and mask is {mask,len,bias}.

The reason we make "mask" argument comes before "len" is because we want to keep
the "mask" location same as mask_* or cond_* patterns to make use of current codes flow
of mask_* and cond_*. Otherwise, we will need to change codes much more and make codes
hard to maintain.

Now, we already have COND_LEN_*, it's naturally that we should rename "LEN_MASK" into "MASK_LEN"
to keep name scheme consistent.

This patch only changes the name "LEN_MASK" into "MASK_LEN".
No codes functionality change.

gcc/ChangeLog:

	* config/riscv/autovec.md (len_maskload<mode><vm>): Change LEN_MASK into MASK_LEN.
	(mask_len_load<mode><vm>): Ditto.
	(len_maskstore<mode><vm>): Ditto.
	(mask_len_store<mode><vm>): Ditto.
	(len_mask_gather_load<RATIO64:mode><RATIO64I:mode>): Ditto.
	(mask_len_gather_load<RATIO64:mode><RATIO64I:mode>): Ditto.
	(len_mask_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
	(mask_len_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
	(len_mask_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
	(mask_len_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
	(len_mask_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
	(mask_len_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
	(len_mask_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
	(mask_len_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
	(len_mask_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
	(mask_len_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
	(len_mask_gather_load<RATIO1:mode><RATIO1:mode>): Ditto.
	(mask_len_gather_load<RATIO1:mode><RATIO1:mode>): Ditto.
	(len_mask_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
	(mask_len_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
	(len_mask_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
	(mask_len_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
	(len_mask_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
	(mask_len_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
	(len_mask_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
	(mask_len_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
	(len_mask_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
	(mask_len_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
	(len_mask_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
	(mask_len_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
	(len_mask_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
	(mask_len_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
	* doc/md.texi: Ditto.
	* genopinit.cc (main): Ditto.
	(CMP_NAME): Ditto. Ditto.
	* gimple-fold.cc (arith_overflowed_p): Ditto.
	(gimple_fold_partial_load_store_mem_ref): Ditto.
	(gimple_fold_call): Ditto.
	* internal-fn.cc (len_maskload_direct): Ditto.
	(mask_len_load_direct): Ditto.
	(len_maskstore_direct): Ditto.
	(mask_len_store_direct): Ditto.
	(expand_call_mem_ref): Ditto.
	(expand_len_maskload_optab_fn): Ditto.
	(expand_mask_len_load_optab_fn): Ditto.
	(expand_len_maskstore_optab_fn): Ditto.
	(expand_mask_len_store_optab_fn): Ditto.
	(direct_len_maskload_optab_supported_p): Ditto.
	(direct_mask_len_load_optab_supported_p): Ditto.
	(direct_len_maskstore_optab_supported_p): Ditto.
	(direct_mask_len_store_optab_supported_p): Ditto.
	(internal_load_fn_p): Ditto.
	(internal_store_fn_p): Ditto.
	(internal_gather_scatter_fn_p): Ditto.
	(internal_fn_len_index): Ditto.
	(internal_fn_mask_index): Ditto.
	(internal_fn_stored_value_index): Ditto.
	(internal_len_load_store_bias): Ditto.
	* internal-fn.def (LEN_MASK_GATHER_LOAD): Ditto.
	(MASK_LEN_GATHER_LOAD): Ditto.
	(LEN_MASK_LOAD): Ditto.
	(MASK_LEN_LOAD): Ditto.
	(LEN_MASK_SCATTER_STORE): Ditto.
	(MASK_LEN_SCATTER_STORE): Ditto.
	(LEN_MASK_STORE): Ditto.
	(MASK_LEN_STORE): Ditto.
	* optabs-query.cc (supports_vec_gather_load_p): Ditto.
	(supports_vec_scatter_store_p): Ditto.
	* optabs-tree.cc (target_supports_mask_load_store_p): Ditto.
	(target_supports_len_load_store_p): Ditto.
	* optabs.def (OPTAB_CD): Ditto.
	* tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Ditto.
	(call_may_clobber_ref_p_1): Ditto.
	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Ditto.
	(dse_optimize_stmt): Ditto.
	* tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn): Ditto.
	(get_alias_ptr_type_for_ptr_address): Ditto.
	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Ditto.
	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Ditto.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
	(vect_get_strided_load_store_ops): Ditto.
	(vectorizable_store): Ditto.
	(vectorizable_load): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-10.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-11.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-12.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-3.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-4.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-5.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-6.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-7.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-8.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/gather_load-9.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-10.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-11.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-3.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-4.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-5.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-6.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-7.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-8.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load-9.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-10.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-3.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-4.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-5.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-6.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-7.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-8.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store-9.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-10.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-3.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-4.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-5.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-6.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-7.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-8.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store-9.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-1.c: Ditto.
	* gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-2.c: Ditto.
	* gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c: Ditto.
This commit is contained in:
Juzhe-Zhong 2023-07-21 07:20:04 +08:00 committed by Lehua Ding
parent 1ec65c2bc0
commit bd68b33f80
63 changed files with 170 additions and 170 deletions

View file

@ -22,7 +22,7 @@
;; == Loads/Stores
;; =========================================================================
(define_expand "len_maskload<mode><vm>"
(define_expand "mask_len_load<mode><vm>"
[(match_operand:V 0 "register_operand")
(match_operand:V 1 "memory_operand")
(match_operand 2 "autovec_length_operand")
@ -34,7 +34,7 @@
DONE;
})
(define_expand "len_maskstore<mode><vm>"
(define_expand "mask_len_store<mode><vm>"
[(match_operand:V 0 "memory_operand")
(match_operand:V 1 "register_operand")
(match_operand 2 "autovec_length_operand")
@ -61,7 +61,7 @@
;; == Gather Load
;; =========================================================================
(define_expand "len_mask_gather_load<RATIO64:mode><RATIO64I:mode>"
(define_expand "mask_len_gather_load<RATIO64:mode><RATIO64I:mode>"
[(match_operand:RATIO64 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO64I 2 "register_operand")
@ -76,7 +76,7 @@
DONE;
})
(define_expand "len_mask_gather_load<RATIO32:mode><RATIO32I:mode>"
(define_expand "mask_len_gather_load<RATIO32:mode><RATIO32I:mode>"
[(match_operand:RATIO32 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO32I 2 "register_operand")
@ -91,7 +91,7 @@
DONE;
})
(define_expand "len_mask_gather_load<RATIO16:mode><RATIO16I:mode>"
(define_expand "mask_len_gather_load<RATIO16:mode><RATIO16I:mode>"
[(match_operand:RATIO16 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO16I 2 "register_operand")
@ -106,7 +106,7 @@
DONE;
})
(define_expand "len_mask_gather_load<RATIO8:mode><RATIO8I:mode>"
(define_expand "mask_len_gather_load<RATIO8:mode><RATIO8I:mode>"
[(match_operand:RATIO8 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO8I 2 "register_operand")
@ -121,7 +121,7 @@
DONE;
})
(define_expand "len_mask_gather_load<RATIO4:mode><RATIO4I:mode>"
(define_expand "mask_len_gather_load<RATIO4:mode><RATIO4I:mode>"
[(match_operand:RATIO4 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO4I 2 "register_operand")
@ -136,7 +136,7 @@
DONE;
})
(define_expand "len_mask_gather_load<RATIO2:mode><RATIO2I:mode>"
(define_expand "mask_len_gather_load<RATIO2:mode><RATIO2I:mode>"
[(match_operand:RATIO2 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO2I 2 "register_operand")
@ -155,7 +155,7 @@
;; larger SEW. Since RVV indexed load/store support zero extend
;; implicitly and not support scaling, we should only allow
;; operands[3] and operands[4] to be const_1_operand.
(define_expand "len_mask_gather_load<RATIO1:mode><RATIO1:mode>"
(define_expand "mask_len_gather_load<RATIO1:mode><RATIO1:mode>"
[(match_operand:RATIO1 0 "register_operand")
(match_operand 1 "pmode_reg_or_0_operand")
(match_operand:RATIO1 2 "register_operand")
@ -174,7 +174,7 @@
;; == Scatter Store
;; =========================================================================
(define_expand "len_mask_scatter_store<RATIO64:mode><RATIO64I:mode>"
(define_expand "mask_len_scatter_store<RATIO64:mode><RATIO64I:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO64I 1 "register_operand")
(match_operand 2 "<RATIO64:gs_extension>")
@ -189,7 +189,7 @@
DONE;
})
(define_expand "len_mask_scatter_store<RATIO32:mode><RATIO32I:mode>"
(define_expand "mask_len_scatter_store<RATIO32:mode><RATIO32I:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO32I 1 "register_operand")
(match_operand 2 "<RATIO32:gs_extension>")
@ -204,7 +204,7 @@
DONE;
})
(define_expand "len_mask_scatter_store<RATIO16:mode><RATIO16I:mode>"
(define_expand "mask_len_scatter_store<RATIO16:mode><RATIO16I:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO16I 1 "register_operand")
(match_operand 2 "<RATIO16:gs_extension>")
@ -219,7 +219,7 @@
DONE;
})
(define_expand "len_mask_scatter_store<RATIO8:mode><RATIO8I:mode>"
(define_expand "mask_len_scatter_store<RATIO8:mode><RATIO8I:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO8I 1 "register_operand")
(match_operand 2 "<RATIO8:gs_extension>")
@ -234,7 +234,7 @@
DONE;
})
(define_expand "len_mask_scatter_store<RATIO4:mode><RATIO4I:mode>"
(define_expand "mask_len_scatter_store<RATIO4:mode><RATIO4I:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO4I 1 "register_operand")
(match_operand 2 "<RATIO4:gs_extension>")
@ -249,7 +249,7 @@
DONE;
})
(define_expand "len_mask_scatter_store<RATIO2:mode><RATIO2I:mode>"
(define_expand "mask_len_scatter_store<RATIO2:mode><RATIO2I:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO2I 1 "register_operand")
(match_operand 2 "<RATIO2:gs_extension>")
@ -268,7 +268,7 @@
;; larger SEW. Since RVV indexed load/store support zero extend
;; implicitly and not support scaling, we should only allow
;; operands[3] and operands[4] to be const_1_operand.
(define_expand "len_mask_scatter_store<RATIO1:mode><RATIO1:mode>"
(define_expand "mask_len_scatter_store<RATIO1:mode><RATIO1:mode>"
[(match_operand 0 "pmode_reg_or_0_operand")
(match_operand:RATIO1 1 "register_operand")
(match_operand 2 "<RATIO1:gs_extension>")

View file

@ -5040,10 +5040,10 @@ operand 5. Bit @var{i} of the mask is set if element @var{i}
of the result should be loaded from memory and clear if element @var{i}
of the result should be set to zero.
@cindex @code{len_mask_gather_load@var{m}@var{n}} instruction pattern
@item @samp{len_mask_gather_load@var{m}@var{n}}
@cindex @code{mask_len_gather_load@var{m}@var{n}} instruction pattern
@item @samp{mask_len_gather_load@var{m}@var{n}}
Like @samp{gather_load@var{m}@var{n}}, but takes an extra length operand (operand 5),
a bias operand (operand 6) as well as a mask operand (operand 7). Similar to len_maskload,
a bias operand (operand 6) as well as a mask operand (operand 7). Similar to mask_len_load,
the instruction loads at most (operand 5 + operand 6) elements from memory.
Bit @var{i} of the mask is set if element @var{i} of the result should
be loaded from memory and clear if element @var{i} of the result should be undefined.
@ -5078,8 +5078,8 @@ Like @samp{scatter_store@var{m}@var{n}}, but takes an extra mask operand as
operand 5. Bit @var{i} of the mask is set if element @var{i}
of the result should be stored to memory.
@cindex @code{len_mask_scatter_store@var{m}@var{n}} instruction pattern
@item @samp{len_mask_scatter_store@var{m}@var{n}}
@cindex @code{mask_len_scatter_store@var{m}@var{n}} instruction pattern
@item @samp{mask_len_scatter_store@var{m}@var{n}}
Like @samp{scatter_store@var{m}@var{n}}, but takes an extra length operand (operand 5),
a bias operand (operand 6) as well as a mask operand (operand 7). The instruction stores
at most (operand 5 + operand 6) elements of (operand 4) to memory.
@ -5321,8 +5321,8 @@ of @code{QI} elements.
This pattern is not allowed to @code{FAIL}.
@cindex @code{len_maskload@var{m}@var{n}} instruction pattern
@item @samp{len_maskload@var{m}@var{n}}
@cindex @code{mask_len_load@var{m}@var{n}} instruction pattern
@item @samp{mask_len_load@var{m}@var{n}}
Perform a masked load from the memory location pointed to by operand 1
into register operand 0. (operand 2 + operand 3) elements are loaded from
memory and other elements in operand 0 are set to undefined values.
@ -5348,8 +5348,8 @@ of @code{QI} elements.
This pattern is not allowed to @code{FAIL}.
@cindex @code{len_maskstore@var{m}@var{n}} instruction pattern
@item @samp{len_maskstore@var{m}@var{n}}
@cindex @code{mask_len_store@var{m}@var{n}} instruction pattern
@item @samp{mask_len_store@var{m}@var{n}}
Perform a masked store from vector register operand 1 into memory operand 0.
(operand 2 + operand 3) elements are stored to memory
and leave the other elements of operand 0 unchanged.

View file

@ -376,7 +376,7 @@ main (int argc, const char **argv)
fprintf (s_file,
"/* Returns TRUE if the target supports any of the partial vector\n"
" optabs: while_ult_optab, len_load_optab, len_store_optab,\n"
" len_maskload_optab or len_maskstore_optab,\n"
" mask_len_load_optab or mask_len_store_optab,\n"
" for any mode. */\n"
"bool\npartial_vectors_supported_p (void)\n{\n");
bool any_match = false;
@ -386,8 +386,8 @@ main (int argc, const char **argv)
{
#define CMP_NAME(N) !strncmp (p->name, (N), strlen ((N)))
if (CMP_NAME("while_ult") || CMP_NAME ("len_load")
|| CMP_NAME ("len_store")|| CMP_NAME ("len_maskload")
|| CMP_NAME ("len_maskstore"))
|| CMP_NAME ("len_store")|| CMP_NAME ("mask_len_load")
|| CMP_NAME ("mask_len_store"))
{
if (first)
fprintf (s_file, " HAVE_%s", p->name);

View file

@ -5370,7 +5370,7 @@ arith_overflowed_p (enum tree_code code, const_tree type,
return wi::min_precision (wres, sign) > TYPE_PRECISION (type);
}
/* If IFN_{MASK,LEN,LEN_MASK}_LOAD/STORE call CALL is unconditional,
/* If IFN_{MASK,LEN,MASK_LEN}_LOAD/STORE call CALL is unconditional,
return a MEM_REF for the memory it references, otherwise return null.
VECTYPE is the type of the memory vector. MASK_P indicates it's for
MASK if true, otherwise it's for LEN. */
@ -5398,15 +5398,15 @@ gimple_fold_partial_load_store_mem_ref (gcall *call, tree vectype, bool mask_p)
return NULL_TREE;
tree bias = gimple_call_arg (call, len_index + 1);
gcc_assert (TREE_CODE (bias) == INTEGER_CST);
/* For LEN_LOAD/LEN_STORE/LEN_MASK_LOAD/LEN_MASK_STORE,
/* For LEN_LOAD/LEN_STORE/MASK_LEN_LOAD/MASK_LEN_STORE,
we don't fold when (bias + len) != VF. */
if (maybe_ne (wi::to_poly_widest (basic_len) + wi::to_widest (bias),
GET_MODE_NUNITS (TYPE_MODE (vectype))))
return NULL_TREE;
/* For LEN_MASK_{LOAD,STORE}, we should also check whether
/* For MASK_LEN_{LOAD,STORE}, we should also check whether
the mask is all ones mask. */
if (ifn == IFN_LEN_MASK_LOAD || ifn == IFN_LEN_MASK_STORE)
if (ifn == IFN_MASK_LEN_LOAD || ifn == IFN_MASK_LEN_STORE)
{
tree mask = gimple_call_arg (call, internal_fn_mask_index (ifn));
if (!integer_all_onesp (mask))
@ -5689,11 +5689,11 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
changed |= gimple_fold_partial_store (gsi, stmt, true);
break;
case IFN_LEN_LOAD:
case IFN_LEN_MASK_LOAD:
case IFN_MASK_LEN_LOAD:
changed |= gimple_fold_partial_load (gsi, stmt, false);
break;
case IFN_LEN_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
changed |= gimple_fold_partial_store (gsi, stmt, false);
break;
default:

View file

@ -165,7 +165,7 @@ init_internal_fns ()
#define mask_load_lanes_direct { -1, -1, false }
#define gather_load_direct { 3, 1, false }
#define len_load_direct { -1, -1, false }
#define len_maskload_direct { -1, 4, false }
#define mask_len_load_direct { -1, 4, false }
#define mask_store_direct { 3, 2, false }
#define store_lanes_direct { 0, 0, false }
#define mask_store_lanes_direct { 0, 0, false }
@ -173,7 +173,7 @@ init_internal_fns ()
#define vec_cond_direct { 2, 0, false }
#define scatter_store_direct { 3, 1, false }
#define len_store_direct { 3, 3, false }
#define len_maskstore_direct { 4, 5, false }
#define mask_len_store_direct { 4, 5, false }
#define vec_set_direct { 3, 3, false }
#define vec_extract_direct { 3, 3, false }
#define unary_direct { 0, 0, true }
@ -2912,7 +2912,7 @@ expand_call_mem_ref (tree type, gcall *stmt, int index)
return fold_build2 (MEM_REF, type, addr, build_int_cst (alias_ptr_type, 0));
}
/* Expand MASK_LOAD{,_LANES}, LEN_MASK_LOAD or LEN_LOAD call STMT using optab
/* Expand MASK_LOAD{,_LANES}, MASK_LEN_LOAD or LEN_LOAD call STMT using optab
* OPTAB. */
static void
@ -2954,9 +2954,9 @@ expand_partial_load_optab_fn (internal_fn ifn, gcall *stmt, convert_optab optab)
#define expand_mask_load_optab_fn expand_partial_load_optab_fn
#define expand_mask_load_lanes_optab_fn expand_mask_load_optab_fn
#define expand_len_load_optab_fn expand_partial_load_optab_fn
#define expand_len_maskload_optab_fn expand_partial_load_optab_fn
#define expand_mask_len_load_optab_fn expand_partial_load_optab_fn
/* Expand MASK_STORE{,_LANES}, LEN_MASK_STORE or LEN_STORE call STMT using optab
/* Expand MASK_STORE{,_LANES}, MASK_LEN_STORE or LEN_STORE call STMT using optab
* OPTAB. */
static void
@ -2993,7 +2993,7 @@ expand_partial_store_optab_fn (internal_fn ifn, gcall *stmt, convert_optab optab
#define expand_mask_store_optab_fn expand_partial_store_optab_fn
#define expand_mask_store_lanes_optab_fn expand_mask_store_optab_fn
#define expand_len_store_optab_fn expand_partial_store_optab_fn
#define expand_len_maskstore_optab_fn expand_partial_store_optab_fn
#define expand_mask_len_store_optab_fn expand_partial_store_optab_fn
/* Expand VCOND, VCONDU and VCONDEQ optab internal functions.
The expansion of STMT happens based on OPTAB table associated. */
@ -4001,7 +4001,7 @@ multi_vector_optab_supported_p (convert_optab optab, tree_pair types,
#define direct_mask_load_lanes_optab_supported_p multi_vector_optab_supported_p
#define direct_gather_load_optab_supported_p convert_optab_supported_p
#define direct_len_load_optab_supported_p direct_optab_supported_p
#define direct_len_maskload_optab_supported_p convert_optab_supported_p
#define direct_mask_len_load_optab_supported_p convert_optab_supported_p
#define direct_mask_store_optab_supported_p convert_optab_supported_p
#define direct_store_lanes_optab_supported_p multi_vector_optab_supported_p
#define direct_mask_store_lanes_optab_supported_p multi_vector_optab_supported_p
@ -4009,7 +4009,7 @@ multi_vector_optab_supported_p (convert_optab optab, tree_pair types,
#define direct_vec_cond_optab_supported_p convert_optab_supported_p
#define direct_scatter_store_optab_supported_p convert_optab_supported_p
#define direct_len_store_optab_supported_p direct_optab_supported_p
#define direct_len_maskstore_optab_supported_p convert_optab_supported_p
#define direct_mask_len_store_optab_supported_p convert_optab_supported_p
#define direct_while_optab_supported_p convert_optab_supported_p
#define direct_fold_extract_optab_supported_p direct_optab_supported_p
#define direct_fold_left_optab_supported_p direct_optab_supported_p
@ -4554,9 +4554,9 @@ internal_load_fn_p (internal_fn fn)
case IFN_MASK_LOAD_LANES:
case IFN_GATHER_LOAD:
case IFN_MASK_GATHER_LOAD:
case IFN_LEN_MASK_GATHER_LOAD:
case IFN_MASK_LEN_GATHER_LOAD:
case IFN_LEN_LOAD:
case IFN_LEN_MASK_LOAD:
case IFN_MASK_LEN_LOAD:
return true;
default:
@ -4576,9 +4576,9 @@ internal_store_fn_p (internal_fn fn)
case IFN_MASK_STORE_LANES:
case IFN_SCATTER_STORE:
case IFN_MASK_SCATTER_STORE:
case IFN_LEN_MASK_SCATTER_STORE:
case IFN_MASK_LEN_SCATTER_STORE:
case IFN_LEN_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
return true;
default:
@ -4595,10 +4595,10 @@ internal_gather_scatter_fn_p (internal_fn fn)
{
case IFN_GATHER_LOAD:
case IFN_MASK_GATHER_LOAD:
case IFN_LEN_MASK_GATHER_LOAD:
case IFN_MASK_LEN_GATHER_LOAD:
case IFN_SCATTER_STORE:
case IFN_MASK_SCATTER_STORE:
case IFN_LEN_MASK_SCATTER_STORE:
case IFN_MASK_LEN_SCATTER_STORE:
return true;
default:
@ -4616,12 +4616,12 @@ internal_fn_len_index (internal_fn fn)
{
case IFN_LEN_LOAD:
case IFN_LEN_STORE:
case IFN_LEN_MASK_LOAD:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_LOAD:
case IFN_MASK_LEN_STORE:
return 2;
case IFN_LEN_MASK_GATHER_LOAD:
case IFN_LEN_MASK_SCATTER_STORE:
case IFN_MASK_LEN_GATHER_LOAD:
case IFN_MASK_LEN_SCATTER_STORE:
case IFN_COND_LEN_FMA:
case IFN_COND_LEN_FMS:
case IFN_COND_LEN_FNMA:
@ -4669,10 +4669,10 @@ internal_fn_mask_index (internal_fn fn)
case IFN_MASK_GATHER_LOAD:
case IFN_MASK_SCATTER_STORE:
case IFN_LEN_MASK_LOAD:
case IFN_LEN_MASK_STORE:
case IFN_LEN_MASK_GATHER_LOAD:
case IFN_LEN_MASK_SCATTER_STORE:
case IFN_MASK_LEN_LOAD:
case IFN_MASK_LEN_STORE:
case IFN_MASK_LEN_GATHER_LOAD:
case IFN_MASK_LEN_SCATTER_STORE:
return 4;
default:
@ -4693,13 +4693,13 @@ internal_fn_stored_value_index (internal_fn fn)
case IFN_MASK_STORE_LANES:
case IFN_SCATTER_STORE:
case IFN_MASK_SCATTER_STORE:
case IFN_LEN_MASK_SCATTER_STORE:
case IFN_MASK_LEN_SCATTER_STORE:
return 3;
case IFN_LEN_STORE:
return 4;
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
return 5;
default:
@ -4774,13 +4774,13 @@ internal_len_load_store_bias (internal_fn ifn, machine_mode mode)
return VECT_PARTIAL_BIAS_UNSUPPORTED;
if (ifn == IFN_LEN_LOAD)
{
/* Try LEN_MASK_LOAD. */
optab = direct_internal_fn_optab (IFN_LEN_MASK_LOAD);
/* Try MASK_LEN_LOAD. */
optab = direct_internal_fn_optab (IFN_MASK_LEN_LOAD);
}
else
{
/* Try LEN_MASK_STORE. */
optab = direct_internal_fn_optab (IFN_LEN_MASK_STORE);
/* Try MASK_LEN_STORE. */
optab = direct_internal_fn_optab (IFN_MASK_LEN_STORE);
}
icode = convert_optab_handler (optab, mode, mask_mode);
}

View file

@ -48,16 +48,16 @@ along with GCC; see the file COPYING3. If not see
- mask_load: currently just maskload
- load_lanes: currently just vec_load_lanes
- mask_load_lanes: currently just vec_mask_load_lanes
- gather_load: used for {mask_,len_mask,}gather_load
- gather_load: used for {mask_,mask_len_,}gather_load
- len_load: currently just len_load
- len_maskload: currently just len_maskload
- mask_len_load: currently just mask_len_load
- mask_store: currently just maskstore
- store_lanes: currently just vec_store_lanes
- mask_store_lanes: currently just vec_mask_store_lanes
- scatter_store: used for {mask_,len_mask,}scatter_store
- scatter_store: used for {mask_,mask_len_,}scatter_store
- len_store: currently just len_store
- len_maskstore: currently just len_maskstore
- mask_len_store: currently just mask_len_store
- unary: a normal unary optab, such as vec_reverse_<mode>
- binary: a normal binary optab, such as vec_interleave_lo_<mode>
@ -161,17 +161,17 @@ DEF_INTERNAL_OPTAB_FN (MASK_LOAD_LANES, ECF_PURE,
DEF_INTERNAL_OPTAB_FN (GATHER_LOAD, ECF_PURE, gather_load, gather_load)
DEF_INTERNAL_OPTAB_FN (MASK_GATHER_LOAD, ECF_PURE,
mask_gather_load, gather_load)
DEF_INTERNAL_OPTAB_FN (LEN_MASK_GATHER_LOAD, ECF_PURE,
len_mask_gather_load, gather_load)
DEF_INTERNAL_OPTAB_FN (MASK_LEN_GATHER_LOAD, ECF_PURE,
mask_len_gather_load, gather_load)
DEF_INTERNAL_OPTAB_FN (LEN_LOAD, ECF_PURE, len_load, len_load)
DEF_INTERNAL_OPTAB_FN (LEN_MASK_LOAD, ECF_PURE, len_maskload, len_maskload)
DEF_INTERNAL_OPTAB_FN (MASK_LEN_LOAD, ECF_PURE, mask_len_load, mask_len_load)
DEF_INTERNAL_OPTAB_FN (SCATTER_STORE, 0, scatter_store, scatter_store)
DEF_INTERNAL_OPTAB_FN (MASK_SCATTER_STORE, 0,
mask_scatter_store, scatter_store)
DEF_INTERNAL_OPTAB_FN (LEN_MASK_SCATTER_STORE, 0,
len_mask_scatter_store, scatter_store)
DEF_INTERNAL_OPTAB_FN (MASK_LEN_SCATTER_STORE, 0,
mask_len_scatter_store, scatter_store)
DEF_INTERNAL_OPTAB_FN (MASK_STORE, 0, maskstore, mask_store)
DEF_INTERNAL_OPTAB_FN (STORE_LANES, ECF_CONST, vec_store_lanes, store_lanes)
@ -187,7 +187,7 @@ DEF_INTERNAL_OPTAB_FN (VEC_SET, 0, vec_set, vec_set)
DEF_INTERNAL_OPTAB_FN (VEC_EXTRACT, 0, vec_extract, vec_extract)
DEF_INTERNAL_OPTAB_FN (LEN_STORE, 0, len_store, len_store)
DEF_INTERNAL_OPTAB_FN (LEN_MASK_STORE, 0, len_maskstore, len_maskstore)
DEF_INTERNAL_OPTAB_FN (MASK_LEN_STORE, 0, mask_len_store, mask_len_store)
DEF_INTERNAL_OPTAB_FN (WHILE_ULT, ECF_CONST | ECF_NOTHROW, while_ult, while)
DEF_INTERNAL_OPTAB_FN (SELECT_VL, ECF_CONST | ECF_NOTHROW, select_vl, binary)

View file

@ -676,7 +676,7 @@ supports_vec_gather_load_p (machine_mode mode)
this_fn_optabs->supports_vec_gather_load[mode]
= (supports_vec_convert_optab_p (gather_load_optab, mode)
|| supports_vec_convert_optab_p (mask_gather_load_optab, mode)
|| supports_vec_convert_optab_p (len_mask_gather_load_optab, mode)
|| supports_vec_convert_optab_p (mask_len_gather_load_optab, mode)
? 1 : -1);
return this_fn_optabs->supports_vec_gather_load[mode] > 0;
@ -693,7 +693,7 @@ supports_vec_scatter_store_p (machine_mode mode)
this_fn_optabs->supports_vec_scatter_store[mode]
= (supports_vec_convert_optab_p (scatter_store_optab, mode)
|| supports_vec_convert_optab_p (mask_scatter_store_optab, mode)
|| supports_vec_convert_optab_p (len_mask_scatter_store_optab, mode)
|| supports_vec_convert_optab_p (mask_len_scatter_store_optab, mode)
? 1 : -1);
return this_fn_optabs->supports_vec_scatter_store[mode] > 0;

View file

@ -545,17 +545,17 @@ target_supports_op_p (tree type, enum tree_code code,
/* Return true if the target has support for masked load/store.
We can support masked load/store by either mask{load,store}
or len_mask{load,store}.
or mask_len_{load,store}.
This helper function checks whether target supports masked
load/store and return corresponding IFN in the last argument
(IFN_MASK_{LOAD,STORE} or IFN_LEN_MASK_{LOAD,STORE}). */
(IFN_MASK_{LOAD,STORE} or IFN_MASK_LEN_{LOAD,STORE}). */
static bool
target_supports_mask_load_store_p (machine_mode mode, machine_mode mask_mode,
bool is_load, internal_fn *ifn)
{
optab op = is_load ? maskload_optab : maskstore_optab;
optab len_op = is_load ? len_maskload_optab : len_maskstore_optab;
optab len_op = is_load ? mask_len_load_optab : mask_len_store_optab;
if (convert_optab_handler (op, mode, mask_mode) != CODE_FOR_nothing)
{
if (ifn)
@ -565,7 +565,7 @@ target_supports_mask_load_store_p (machine_mode mode, machine_mode mask_mode,
else if (convert_optab_handler (len_op, mode, mask_mode) != CODE_FOR_nothing)
{
if (ifn)
*ifn = is_load ? IFN_LEN_MASK_LOAD : IFN_LEN_MASK_STORE;
*ifn = is_load ? IFN_MASK_LEN_LOAD : IFN_MASK_LEN_STORE;
return true;
}
return false;
@ -573,7 +573,7 @@ target_supports_mask_load_store_p (machine_mode mode, machine_mode mask_mode,
/* Return true if target supports vector masked load/store for mode.
An additional output in the last argument which is the IFN pointer.
We set IFN as MASK_{LOAD,STORE} or LEN_MASK_{LOAD,STORE} according
We set IFN as MASK_{LOAD,STORE} or MASK_LEN_{LOAD,STORE} according
which optab is supported in the target. */
bool
@ -615,17 +615,17 @@ can_vec_mask_load_store_p (machine_mode mode,
/* Return true if the target has support for len load/store.
We can support len load/store by either len_{load,store}
or len_mask{load,store}.
or mask_len_{load,store}.
This helper function checks whether target supports len
load/store and return corresponding IFN in the last argument
(IFN_LEN_{LOAD,STORE} or IFN_LEN_MASK_{LOAD,STORE}). */
(IFN_LEN_{LOAD,STORE} or IFN_MASK_LEN_{LOAD,STORE}). */
static bool
target_supports_len_load_store_p (machine_mode mode, bool is_load,
internal_fn *ifn)
{
optab op = is_load ? len_load_optab : len_store_optab;
optab masked_op = is_load ? len_maskload_optab : len_maskstore_optab;
optab masked_op = is_load ? mask_len_load_optab : mask_len_store_optab;
if (direct_optab_handler (op, mode))
{
@ -638,7 +638,7 @@ target_supports_len_load_store_p (machine_mode mode, bool is_load,
&& convert_optab_handler (masked_op, mode, mask_mode) != CODE_FOR_nothing)
{
if (ifn)
*ifn = is_load ? IFN_LEN_MASK_LOAD : IFN_LEN_MASK_STORE;
*ifn = is_load ? IFN_MASK_LEN_LOAD : IFN_MASK_LEN_STORE;
return true;
}
return false;
@ -651,7 +651,7 @@ target_supports_len_load_store_p (machine_mode mode, bool is_load,
As len_{load,store} optabs point out, for the flavor with bytes, we use
VnQI to wrap the other supportable same size vector modes.
An additional output in the last argument which is the IFN pointer.
We set IFN as LEN_{LOAD,STORE} or LEN_MASK_{LOAD,STORE} according
We set IFN as LEN_{LOAD,STORE} or MASK_LEN_{LOAD,STORE} according
which optab is supported in the target. */
opt_machine_mode

View file

@ -91,14 +91,14 @@ OPTAB_CD(vec_cmpu_optab, "vec_cmpu$a$b")
OPTAB_CD(vec_cmpeq_optab, "vec_cmpeq$a$b")
OPTAB_CD(maskload_optab, "maskload$a$b")
OPTAB_CD(maskstore_optab, "maskstore$a$b")
OPTAB_CD(len_maskload_optab, "len_maskload$a$b")
OPTAB_CD(len_maskstore_optab, "len_maskstore$a$b")
OPTAB_CD(mask_len_load_optab, "mask_len_load$a$b")
OPTAB_CD(mask_len_store_optab, "mask_len_store$a$b")
OPTAB_CD(gather_load_optab, "gather_load$a$b")
OPTAB_CD(mask_gather_load_optab, "mask_gather_load$a$b")
OPTAB_CD(len_mask_gather_load_optab, "len_mask_gather_load$a$b")
OPTAB_CD(mask_len_gather_load_optab, "mask_len_gather_load$a$b")
OPTAB_CD(scatter_store_optab, "scatter_store$a$b")
OPTAB_CD(mask_scatter_store_optab, "mask_scatter_store$a$b")
OPTAB_CD(len_mask_scatter_store_optab, "len_mask_scatter_store$a$b")
OPTAB_CD(mask_len_scatter_store_optab, "mask_len_scatter_store$a$b")
OPTAB_CD(vec_extract_optab, "vec_extract$a$b")
OPTAB_CD(vec_init_optab, "vec_init$a$b")

View file

@ -33,6 +33,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -27,6 +27,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -105,7 +105,7 @@ TEST_LOOP (float, uint64_t)
TEST_LOOP (double, uint64_t)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 88 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-assembler-not "vluxei64\.v" } } */

View file

@ -33,6 +33,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -34,6 +34,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -108,7 +108,7 @@ TEST_LOOP (float, uint64_t)
TEST_LOOP (double, uint64_t)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 88 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-assembler-not "vluxei64\.v" } } */

View file

@ -34,6 +34,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */

View file

@ -34,6 +34,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -34,6 +34,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -31,6 +31,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -36,6 +36,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -33,6 +33,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -33,6 +33,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -30,6 +30,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 11 "vect" } } */
/* { dg-final { scan-tree-dump " \.LEN_MASK_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump " \.MASK_LEN_SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "vect" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "vect" } } */

View file

@ -40,6 +40,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times " \.LEN_MASK_GATHER_LOAD" 66 "optimized" } } */
/* { dg-final { scan-tree-dump-times " \.MASK_LEN_GATHER_LOAD" 66 "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "optimized" } } */

View file

@ -40,6 +40,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times " \.LEN_MASK_GATHER_LOAD" 46 "optimized" } } */
/* { dg-final { scan-tree-dump-times " \.MASK_LEN_GATHER_LOAD" 46 "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "optimized" } } */

View file

@ -40,6 +40,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times " \.LEN_MASK_SCATTER_STORE" 66 "optimized" } } */
/* { dg-final { scan-tree-dump-times " \.MASK_LEN_SCATTER_STORE" 66 "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "optimized" } } */

View file

@ -40,6 +40,6 @@
TEST_ALL (TEST_LOOP)
/* { dg-final { scan-tree-dump-times " \.LEN_MASK_SCATTER_STORE" 44 "optimized" } } */
/* { dg-final { scan-tree-dump-times " \.MASK_LEN_SCATTER_STORE" 44 "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.SCATTER_STORE" "optimized" } } */
/* { dg-final { scan-tree-dump-not " \.MASK_SCATTER_STORE" "optimized" } } */

View file

@ -40,4 +40,4 @@ main ()
RUN_ALL ()
}
/* { dg-final { scan-tree-dump-times "\.LEN_MASK_STORE" 6 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.MASK_LEN_STORE" 6 "optimized" } } */

View file

@ -2815,13 +2815,13 @@ ref_maybe_used_by_call_p_1 (gcall *call, ao_ref *ref, bool tbaa_p)
case IFN_SCATTER_STORE:
case IFN_MASK_SCATTER_STORE:
case IFN_LEN_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
return false;
case IFN_MASK_STORE_LANES:
goto process_args;
case IFN_MASK_LOAD:
case IFN_LEN_LOAD:
case IFN_LEN_MASK_LOAD:
case IFN_MASK_LEN_LOAD:
case IFN_MASK_LOAD_LANES:
{
ao_ref rhs_ref;
@ -3070,7 +3070,7 @@ call_may_clobber_ref_p_1 (gcall *call, ao_ref *ref, bool tbaa_p)
return false;
case IFN_MASK_STORE:
case IFN_LEN_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
case IFN_MASK_STORE_LANES:
{
tree rhs = gimple_call_arg (call,

View file

@ -159,7 +159,7 @@ initialize_ao_ref_for_dse (gimple *stmt, ao_ref *write, bool may_def_ok = false)
{
case IFN_LEN_STORE:
case IFN_MASK_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
{
internal_fn ifn = gimple_call_internal_fn (stmt);
int stored_value_index = internal_fn_stored_value_index (ifn);
@ -1517,7 +1517,7 @@ dse_optimize_stmt (function *fun, gimple_stmt_iterator *gsi, sbitmap live_bytes)
{
case IFN_LEN_STORE:
case IFN_MASK_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
{
enum dse_store_status store_status;
store_status = dse_classify_store (&ref, stmt, false, live_bytes);

View file

@ -2442,7 +2442,7 @@ get_mem_type_for_internal_fn (gcall *call, tree *op_p)
case IFN_MASK_LOAD:
case IFN_MASK_LOAD_LANES:
case IFN_LEN_LOAD:
case IFN_LEN_MASK_LOAD:
case IFN_MASK_LEN_LOAD:
if (op_p == gimple_call_arg_ptr (call, 0))
return TREE_TYPE (gimple_call_lhs (call));
return NULL_TREE;
@ -2450,7 +2450,7 @@ get_mem_type_for_internal_fn (gcall *call, tree *op_p)
case IFN_MASK_STORE:
case IFN_MASK_STORE_LANES:
case IFN_LEN_STORE:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_STORE:
{
if (op_p == gimple_call_arg_ptr (call, 0))
{
@ -7567,8 +7567,8 @@ get_alias_ptr_type_for_ptr_address (iv_use *use)
case IFN_MASK_STORE_LANES:
case IFN_LEN_LOAD:
case IFN_LEN_STORE:
case IFN_LEN_MASK_LOAD:
case IFN_LEN_MASK_STORE:
case IFN_MASK_LEN_LOAD:
case IFN_MASK_LEN_STORE:
/* The second argument contains the correct alias type. */
gcc_assert (use->op_p = gimple_call_arg_ptr (call, 0));
return TREE_TYPE (gimple_call_arg (call, 1));

View file

@ -3878,19 +3878,19 @@ vect_gather_scatter_fn_p (vec_info *vinfo, bool read_p, bool masked_p,
{
ifn = masked_p ? IFN_MASK_GATHER_LOAD : IFN_GATHER_LOAD;
alt_ifn = IFN_MASK_GATHER_LOAD;
/* When target supports LEN_MASK_GATHER_LOAD, we always
use LEN_MASK_GATHER_LOAD regardless whether len and
/* When target supports MASK_LEN_GATHER_LOAD, we always
use MASK_LEN_GATHER_LOAD regardless whether len and
mask are valid or not. */
alt_ifn2 = IFN_LEN_MASK_GATHER_LOAD;
alt_ifn2 = IFN_MASK_LEN_GATHER_LOAD;
}
else
{
ifn = masked_p ? IFN_MASK_SCATTER_STORE : IFN_SCATTER_STORE;
alt_ifn = IFN_MASK_SCATTER_STORE;
/* When target supports LEN_MASK_SCATTER_STORE, we always
use LEN_MASK_SCATTER_STORE regardless whether len and
/* When target supports MASK_LEN_SCATTER_STORE, we always
use MASK_LEN_SCATTER_STORE regardless whether len and
mask are valid or not. */
alt_ifn2 = IFN_LEN_MASK_SCATTER_STORE;
alt_ifn2 = IFN_MASK_LEN_SCATTER_STORE;
}
for (;;)

View file

@ -6106,8 +6106,8 @@ vect_recog_gather_scatter_pattern (vec_info *vinfo,
loop_vinfo);
else if (gs_info.ifn == IFN_MASK_SCATTER_STORE
|| gs_info.ifn == IFN_MASK_GATHER_LOAD
|| gs_info.ifn == IFN_LEN_MASK_SCATTER_STORE
|| gs_info.ifn == IFN_LEN_MASK_GATHER_LOAD)
|| gs_info.ifn == IFN_MASK_LEN_SCATTER_STORE
|| gs_info.ifn == IFN_MASK_LEN_GATHER_LOAD)
mask = build_int_cst (TREE_TYPE (truth_type_for (gs_vectype)), -1);
/* Get the invariant base and non-invariant offset, converting the

View file

@ -1633,8 +1633,8 @@ check_load_store_for_partial_vectors (loop_vec_info loop_vinfo, tree vectype,
? IFN_MASK_GATHER_LOAD
: IFN_MASK_SCATTER_STORE);
internal_fn len_ifn = (is_load
? IFN_LEN_MASK_GATHER_LOAD
: IFN_LEN_MASK_SCATTER_STORE);
? IFN_MASK_LEN_GATHER_LOAD
: IFN_MASK_LEN_SCATTER_STORE);
if (internal_gather_scatter_fn_supported_p (ifn, vectype,
gs_info->memory_type,
gs_info->offset_vectype,
@ -3034,7 +3034,7 @@ vect_get_strided_load_store_ops (stmt_vec_info stmt_info,
{
/* _31 = .SELECT_VL (ivtmp_29, POLY_INT_CST [4, 4]);
ivtmp_8 = _31 * 16 (step in bytes);
.LEN_MASK_SCATTER_STORE (vectp_a.9_7, ... );
.MASK_LEN_SCATTER_STORE (vectp_a.9_7, ... );
vectp_a.9_26 = vectp_a.9_7 + ivtmp_8; */
tree loop_len
= vect_get_loop_len (loop_vinfo, gsi, loop_lens, 1, vectype, 0, 0);
@ -8872,7 +8872,7 @@ vectorizable_store (vec_info *vinfo,
vec_offset = vec_offsets[vec_num * j + i];
tree scale = size_int (gs_info.scale);
if (gs_info.ifn == IFN_LEN_MASK_SCATTER_STORE)
if (gs_info.ifn == IFN_MASK_LEN_SCATTER_STORE)
{
if (loop_lens)
final_len
@ -8896,7 +8896,7 @@ vectorizable_store (vec_info *vinfo,
gcall *call;
if (final_len && final_mask)
call
= gimple_build_call_internal (IFN_LEN_MASK_SCATTER_STORE,
= gimple_build_call_internal (IFN_MASK_LEN_SCATTER_STORE,
7, dataref_ptr, vec_offset,
scale, vec_oprnd, final_mask,
final_len, bias);
@ -9036,12 +9036,12 @@ vectorizable_store (vec_info *vinfo,
gcc_unreachable ();
}
if (partial_ifn == IFN_LEN_MASK_STORE)
if (partial_ifn == IFN_MASK_LEN_STORE)
{
if (!final_len)
{
/* Pass VF value to 'len' argument of
LEN_MASK_STORE if LOOP_LENS is invalid. */
MASK_LEN_STORE if LOOP_LENS is invalid. */
tree iv_type = LOOP_VINFO_RGROUP_IV_TYPE (loop_vinfo);
final_len
= build_int_cst (iv_type,
@ -9050,7 +9050,7 @@ vectorizable_store (vec_info *vinfo,
if (!final_mask)
{
/* Pass all ones value to 'mask' argument of
LEN_MASK_STORE if final_mask is invalid. */
MASK_LEN_STORE if final_mask is invalid. */
mask_vectype = truth_type_for (vectype);
final_mask = build_minus_one_cst (mask_vectype);
}
@ -9086,8 +9086,8 @@ vectorizable_store (vec_info *vinfo,
vec_oprnd = var;
}
if (partial_ifn == IFN_LEN_MASK_STORE)
call = gimple_build_call_internal (IFN_LEN_MASK_STORE, 6,
if (partial_ifn == IFN_MASK_LEN_STORE)
call = gimple_build_call_internal (IFN_MASK_LEN_STORE, 6,
dataref_ptr, ptr,
final_len, bias,
final_mask, vec_oprnd);
@ -10456,7 +10456,7 @@ vectorizable_load (vec_info *vinfo,
tree zero = build_zero_cst (vectype);
tree scale = size_int (gs_info.scale);
if (gs_info.ifn == IFN_LEN_MASK_GATHER_LOAD)
if (gs_info.ifn == IFN_MASK_LEN_GATHER_LOAD)
{
if (loop_lens)
final_len
@ -10480,7 +10480,7 @@ vectorizable_load (vec_info *vinfo,
gcall *call;
if (final_len && final_mask)
call = gimple_build_call_internal (
IFN_LEN_MASK_GATHER_LOAD, 7, dataref_ptr,
IFN_MASK_LEN_GATHER_LOAD, 7, dataref_ptr,
vec_offset, scale, zero, final_mask, final_len,
bias);
else if (final_mask)
@ -10620,12 +10620,12 @@ vectorizable_load (vec_info *vinfo,
gcc_unreachable ();
}
if (partial_ifn == IFN_LEN_MASK_LOAD)
if (partial_ifn == IFN_MASK_LEN_LOAD)
{
if (!final_len)
{
/* Pass VF value to 'len' argument of
LEN_MASK_LOAD if LOOP_LENS is invalid. */
MASK_LEN_LOAD if LOOP_LENS is invalid. */
tree iv_type
= LOOP_VINFO_RGROUP_IV_TYPE (loop_vinfo);
final_len
@ -10635,7 +10635,7 @@ vectorizable_load (vec_info *vinfo,
if (!final_mask)
{
/* Pass all ones value to 'mask' argument of
LEN_MASK_LOAD if final_mask is invalid. */
MASK_LEN_LOAD if final_mask is invalid. */
mask_vectype = truth_type_for (vectype);
final_mask = build_minus_one_cst (mask_vectype);
}
@ -10653,8 +10653,8 @@ vectorizable_load (vec_info *vinfo,
tree ptr
= build_int_cst (ref_type, align * BITS_PER_UNIT);
gcall *call;
if (partial_ifn == IFN_LEN_MASK_LOAD)
call = gimple_build_call_internal (IFN_LEN_MASK_LOAD,
if (partial_ifn == IFN_MASK_LEN_LOAD)
call = gimple_build_call_internal (IFN_MASK_LEN_LOAD,
5, dataref_ptr,
ptr, final_len,
bias, final_mask);