diff options
author | Hu, Lin1 <lin1.hu@intel.com> | 2024-02-01 15:15:01 +0800 |
---|---|---|
committer | Hu, Lin1 <lin1.hu@intel.com> | 2024-06-27 15:55:48 +0800 |
commit | c320a7efcd35ba6c6be70dc9b2fe562a9673e363 (patch) | |
tree | 8bbe1ad48d6751aa112ae15b10d119ef23a8f638 /gcc/tree-vectorizer.h | |
parent | b55798c0fc5cb02512b58502961d8425fb60588f (diff) | |
download | gcc-c320a7efcd35ba6c6be70dc9b2fe562a9673e363.zip gcc-c320a7efcd35ba6c6be70dc9b2fe562a9673e363.tar.gz gcc-c320a7efcd35ba6c6be70dc9b2fe562a9673e363.tar.bz2 |
vect: generate suitable convert insn for int -> int, float -> float and int <-> float.
gcc/ChangeLog:
PR target/107432
* tree-vect-generic.cc
(expand_vector_conversion): Support convert for int -> int,
float -> float and int <-> float.
* tree-vect-stmts.cc (vectorizable_conversion): Wrap the
indirect convert part.
(supportable_indirect_convert_operation): New function.
* tree-vectorizer.h (supportable_indirect_convert_operation):
Define the new function.
gcc/testsuite/ChangeLog:
PR target/107432
* gcc.target/i386/pr107432-1.c: New test.
* gcc.target/i386/pr107432-2.c: Ditto.
* gcc.target/i386/pr107432-3.c: Ditto.
* gcc.target/i386/pr107432-4.c: Ditto.
* gcc.target/i386/pr107432-5.c: Ditto.
* gcc.target/i386/pr107432-6.c: Ditto.
* gcc.target/i386/pr107432-7.c: Ditto.
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r-- | gcc/tree-vectorizer.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index 60224f4..8eb3ec4 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -2277,6 +2277,10 @@ extern bool supportable_widening_operation (vec_info*, code_helper, extern bool supportable_narrowing_operation (code_helper, tree, tree, code_helper *, int *, vec<tree> *); +extern bool supportable_indirect_convert_operation (code_helper, + tree, tree, + vec<std::pair<tree, tree_code> > *, + tree = NULL_TREE); extern unsigned record_stmt_cost (stmt_vector_for_cost *, int, enum vect_cost_for_stmt, stmt_vec_info, |