On Fri, 25 Sept 2020 at 16:31, Tamar Christina <tamar.christ...@arm.com> wrote: > > Hi All, > > This adds support to the auto-vectorizer to support HFmode vectorization for > AArch32. This is supported when +fp16 is used. I wonder if I should disable > the returning of the type if the option isn't enabled. > > At the moment it will be returned but the vectorizer will try and fail to use > it. It wastes a few compile cycles but doesn't result in bad code. > > Bootstrapped Regtested on arm-none-linux-gnueabihf and no issues. > > Ok for master? > > Thanks, > Tamar > > gcc/ChangeLog: > > * config/arm/arm.c (arm_preferred_simd_mode): Add E_HFmode. > > gcc/testsuite/ChangeLog: > > * gcc.target/arm/vect-half-floats.c: New test. >
Hi Tamar, I have noticed problems with the new tests: ERROR: gcc.target/arm/vect-half-floats.c: unknown effective target keyword `target_float16' for " dg-require-effective-target 2 target_float16 " This is because there are two typos in the new test: +/* { dg-require-effective-target target_float16 } */ +/* { dg-add-options for_float16 } */ where target_float16 and for_float16 should just be "float16" However, this is not sufficient for the test to pass on my side, because the test is then compiled with: -ansi -pedantic-errors -mfp16-format=ieee -Ofast -ftree-vectorize -fdump-tree-vect-all -std=c11 leading to: vect-half-floats.c:7:11: error: ISO C does not support the '_Float16' type [-Wpedantic] This patch makes the test pass for me: diff --git a/gcc/testsuite/gcc.target/arm/vect-half-floats.c b/gcc/testsuite/gcc.target/arm/vect-half-floats.c index ebfe7f9..49ca2e9 100644 --- a/gcc/testsuite/gcc.target/arm/vect-half-floats.c +++ b/gcc/testsuite/gcc.target/arm/vect-half-floats.c @@ -1,8 +1,8 @@ /* { dg-do compile } */ -/* { dg-require-effective-target target_float16 } */ +/* { dg-options "-Ofast -ftree-vectorize -fdump-tree-vect-all -std=c11" } */ +/* { dg-require-effective-target float16 } */ /* { dg-require-effective-target arm_fp16_ok } */ -/* { dg-add-options for_float16 } */ -/* { dg-additional-options "-Ofast -ftree-vectorize -fdump-tree-vect-all -std=c11" } */ +/* { dg-add-options float16 } */ void foo (_Float16 n1[], _Float16 n2[], _Float16 r[], int n) { OK? I'm sure why you didn't see problems with you ran the validations? Thanks, Christophe > --