This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r278245 - in /trunk/gcc: ChangeLog config/aarch...
- From: rsandifo at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Thu, 14 Nov 2019 15:31:26 -0000
- Subject: r278245 - in /trunk/gcc: ChangeLog config/aarch...
Author: rsandifo
Date: Thu Nov 14 15:31:25 2019
New Revision: 278245
URL: https://gcc.gnu.org/viewcvs?rev=278245&root=gcc&view=rev
Log:
Vectorise conversions between differently-sized integer vectors
This patch adds AArch64 patterns for converting between 64-bit and
128-bit integer vectors, and makes the vectoriser and expand pass
use them.
2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-cfg.c (verify_gimple_assign_unary): Handle conversions
between vector types.
* tree-vect-stmts.c (vectorizable_conversion): Extend the
non-widening and non-narrowing path to handle standard
conversion codes, if the target supports them.
* expr.c (convert_move): Try using the extend and truncate optabs
for vectors.
* optabs-tree.c (supportable_convert_operation): Likewise.
* config/aarch64/iterators.md (Vnarroqw): New iterator.
* config/aarch64/aarch64-simd.md (<optab><Vnarrowq><mode>2)
(trunc<mode><Vnarrowq>2): New patterns.
gcc/testsuite/
* gcc.dg/vect/bb-slp-pr69907.c: Do not expect BB vectorization
to fail for aarch64 targets.
* gcc.dg/vect/no-scevccp-outer-12.c: Expect the test to pass
on aarch64 targets.
* gcc.dg/vect/vect-double-reduc-5.c: Likewise.
* gcc.dg/vect/vect-outer-4e.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_5.c: New test.
* gcc.target/aarch64/vect_mixed_sizes_6.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_7.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_8.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_9.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_10.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_11.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_12.c: Likewise.
* gcc.target/aarch64/vect_mixed_sizes_13.c: Likewise.
Added:
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_10.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_11.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_12.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_13.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_5.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_6.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_7.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_8.c
trunk/gcc/testsuite/gcc.target/aarch64/vect_mixed_sizes_9.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/aarch64/aarch64-simd.md
trunk/gcc/config/aarch64/iterators.md
trunk/gcc/expr.c
trunk/gcc/optabs-tree.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c
trunk/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
trunk/gcc/testsuite/gcc.dg/vect/vect-double-reduc-5.c
trunk/gcc/testsuite/gcc.dg/vect/vect-outer-4e.c
trunk/gcc/tree-cfg.c
trunk/gcc/tree-vect-stmts.c