Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 28/06/17 15:59, Kyrill Tkachov wrote: Hi Thomas, On 28/06/17 15:49, Thomas Preudhomme wrote: On 20/06/17 13:44, Christophe Lyon wrote: The results with a more recent trunk (r249356)) are here: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249356-consistent_neon_check.patch/report-build-info.html They are slightly different, but still tedious to check ;-) I've checked arm-none-linux-gnueabi and arm-none-linux-gnueabihf and found that: * there's no new FAIL * changes to UNSUPPORTED and NA are for the same files * changes are only for tests in a vect directory * changes for arm-none-linux-gnueabihf are only when targeting vfp without neon (tests are disabled because there is no vector unit) Changes to arm-none-linux-gnueabi makes sense since this defaults to soft floating point and none of the test disabled adds any option to select another variant. I believe this all makes sense. Therefore, is this ok to commit? Best regards, Thomas @@ -4987,10 +4982,10 @@ proc check_effective_target_vect_shift_char { } { proc check_effective_target_vect_long { } { if { [istarget i?86-*-*] || [istarget x86_64-*-*] - || (([istarget powerpc*-*-*] - && ![istarget powerpc-*-linux*paired*]) + || (([istarget powerpc*-*-*] + && ![istarget powerpc-*-linux*paired*]) && [check_effective_target_ilp32]) Is this just a whitespace change? If it is intended then okay. It is yes, trailing whitespace. I took the liberty to fix it because I was changing some other issues in the same procedure. This is okay with a ChangeLog entry. Sorry, I should have pasted it again from the initial message. 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Thanks, this looks like a good change. Kyrill Thanks! Best regards, Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
Hi Thomas, On 28/06/17 15:49, Thomas Preudhomme wrote: On 20/06/17 13:44, Christophe Lyon wrote: The results with a more recent trunk (r249356)) are here: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249356-consistent_neon_check.patch/report-build-info.html They are slightly different, but still tedious to check ;-) I've checked arm-none-linux-gnueabi and arm-none-linux-gnueabihf and found that: * there's no new FAIL * changes to UNSUPPORTED and NA are for the same files * changes are only for tests in a vect directory * changes for arm-none-linux-gnueabihf are only when targeting vfp without neon (tests are disabled because there is no vector unit) Changes to arm-none-linux-gnueabi makes sense since this defaults to soft floating point and none of the test disabled adds any option to select another variant. I believe this all makes sense. Therefore, is this ok to commit? Best regards, Thomas @@ -4987,10 +4982,10 @@ proc check_effective_target_vect_shift_char { } { proc check_effective_target_vect_long { } { if { [istarget i?86-*-*] || [istarget x86_64-*-*] -|| (([istarget powerpc*-*-*] - && ![istarget powerpc-*-linux*paired*]) +|| (([istarget powerpc*-*-*] + && ![istarget powerpc-*-linux*paired*]) && [check_effective_target_ilp32]) Is this just a whitespace change? If it is intended then okay. This is okay with a ChangeLog entry. Thanks, this looks like a good change. Kyrill
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 20/06/17 13:44, Christophe Lyon wrote: The results with a more recent trunk (r249356)) are here: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249356-consistent_neon_check.patch/report-build-info.html They are slightly different, but still tedious to check ;-) I've checked arm-none-linux-gnueabi and arm-none-linux-gnueabihf and found that: * there's no new FAIL * changes to UNSUPPORTED and NA are for the same files * changes are only for tests in a vect directory * changes for arm-none-linux-gnueabihf are only when targeting vfp without neon (tests are disabled because there is no vector unit) Changes to arm-none-linux-gnueabi makes sense since this defaults to soft floating point and none of the test disabled adds any option to select another variant. I believe this all makes sense. Therefore, is this ok to commit? Best regards, Thomas diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index ded6383cc1f9a1489cd83e1dace0c2fc48e252c3..aa8550c9d2cf0ae7e157d9c67fa06ad811651421 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2916,7 +2916,7 @@ proc check_effective_target_vect_int { } { || [istarget alpha*-*-*] || [istarget ia64-*-*] || [istarget aarch64*-*-*] - || [check_effective_target_arm32] + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && ([et-is-effective-target mips_loongson] || [et-is-effective-target mips_msa])) } { @@ -2944,8 +2944,7 @@ proc check_effective_target_vect_intfloat_cvt { } { if { [istarget i?86-*-*] || [istarget x86_64-*-*] || ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_intfloat_cvt_saved($et_index) 1 @@ -2987,8 +2986,7 @@ proc check_effective_target_vect_uintfloat_cvt { } { || ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) || [istarget aarch64*-*-*] - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_uintfloat_cvt_saved($et_index) 1 @@ -3016,8 +3014,7 @@ proc check_effective_target_vect_floatint_cvt { } { if { [istarget i?86-*-*] || [istarget x86_64-*-*] || ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_floatint_cvt_saved($et_index) 1 @@ -3043,8 +3040,7 @@ proc check_effective_target_vect_floatuint_cvt { } { set et_vect_floatuint_cvt_saved($et_index) 0 if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_floatuint_cvt_saved($et_index) 1 @@ -4903,7 +4899,7 @@ proc check_effective_target_vect_shift { } { || [istarget ia64-*-*] || [istarget i?86-*-*] || [istarget x86_64-*-*] || [istarget aarch64*-*-*] - || [check_effective_target_arm32] + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && ([et-is-effective-target mips_msa] || [et-is-effective-target mips_loongson])) } { @@ -4921,7 +4917,7 @@ proc check_effective_target_whole_vector_shift { } { || [istarget ia64-*-*] || [istarget aarch64*-*-*] || [istarget powerpc64*-*-*] - || ([check_effective_target_arm32] + || ([is-effective-target arm_neon] && [check_effective_target_arm_little_endian]) || ([istarget mips*-*-*] && [et-is-effective-target mips_loongson]) } { @@ -4945,8 +4941,7 @@ proc check_effective_target_vect_bswap { } { } else { set et_vect_bswap_saved($et_index) 0 if { [istarget aarch64*-*-*] - || ([istarget arm*-*-*] -&& [check_effective_target_arm_neon]) + || [is-effective-target arm_neon] } { set et_vect_bswap_saved($et_index) 1 } @@ -4969,7 +4964,7 @@ proc check_effective_target_vect_shift_char { } { set et_vect_shift_char_saved($et_index) 0 if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || [check_effective_target_arm32] + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_shift_char_saved($et_index) 1 @@ -4987,10 +4982,10 @@ proc check_effective_target_vect_shift_char { } { proc check_effective_target_vect_long { } {
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 19 June 2017 at 16:47, Thomas Preudhomme wrote: > > > On 19/06/17 15:31, Christophe Lyon wrote: >> >> On 19 June 2017 at 16:11, Thomas Preudhomme >> wrote: >>> >>> >>> >>> On 19/06/17 10:16, Thomas Preudhomme wrote: On 19/06/17 08:41, Christophe Lyon wrote: > > > Hi Thomas, > > > On 15 June 2017 at 18:18, Thomas Preudhomme > wrote: >> >> >> Hi, >> >> Conditions checked for ARM targets in vector-related effective targets >> are inconsistent: >> >> * sometimes arm*-*-* is checked >> * sometimes Neon is checked >> * sometimes arm_neon_ok and sometimes arm_neon is used for neon check >> * sometimes check_effective_target_* is used, sometimes >> is-effective-target >> >> This patch consolidate all of these check into using >> is-effective-target >> arm_neon and when little endian was checked, the check is kept. >> >> ChangeLog entry is as follows: >> >> *** gcc/testsuite/ChangeLog *** >> >> 2017-06-06 Thomas Preud'homme >> >> * lib/target-supports.exp (check_effective_target_vect_int): >> Replace >> current ARM check by ARM NEON's availability check. >> (check_effective_target_vect_intfloat_cvt): Likewise. >> (check_effective_target_vect_uintfloat_cvt): Likewise. >> (check_effective_target_vect_floatint_cvt): Likewise. >> (check_effective_target_vect_floatuint_cvt): Likewise. >> (check_effective_target_vect_shift): Likewise. >> (check_effective_target_whole_vector_shift): Likewise. >> (check_effective_target_vect_bswap): Likewise. >> (check_effective_target_vect_shift_char): Likewise. >> (check_effective_target_vect_long): Likewise. >> (check_effective_target_vect_float): Likewise. >> (check_effective_target_vect_perm): Likewise. >> (check_effective_target_vect_perm_byte): Likewise. >> (check_effective_target_vect_perm_short): Likewise. >> (check_effective_target_vect_widen_sum_hi_to_si_pattern): >> Likewise. >> (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. >> (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. >> (check_effective_target_vect_widen_mult_hi_to_si): Likewise. >> (check_effective_target_vect_widen_mult_qi_to_hi_pattern): >> Likewise. >> (check_effective_target_vect_widen_mult_hi_to_si_pattern): >> Likewise. >> (check_effective_target_vect_widen_shift): Likewise. >> (check_effective_target_vect_extract_even_odd): Likewise. >> (check_effective_target_vect_interleave): Likewise. >> (check_effective_target_vect_multiple_sizes): Likewise. >> (check_effective_target_vect64): Likewise. >> (check_effective_target_vect_max_reduc): Likewise. >> >> Testing: Testsuite shows no regression when targeting ARMv7-A with >> -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with >> default FPU and float ABI (soft). Testing was done with both >> compare_tests >> and the updated dg-cmp-results proposed in >> https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html >> >> Is this ok for trunk? >> > > I applied your patch on top of r249233, and noticed quite a few > changes: > > > http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html > > > Note that "Big-Regression" cases are caused by the fact that there a > are PASS->XPASS and XFAILs disappear with your patch, and many > (3000-4000) PASS disappear. > In that intended? It certainly is not. I'd like to investigate this but the link to results for rev 249233 is broken. Could you provide me with the results you have for that so that I can compare manually? >>> >>> >>> >>> Actually yes it is, at least for the configurations with default (which >>> still uses -mfpu=vfp in r249233) or VFP (whatever version) FPU. I've >>> checked >>> all the ->NA and ->UNSUPPORTED for the arm-none-linux-gnueabi >>> configuration >>> and none of them has a dg directive to select the neon unit (such as >>> dg-additional-options >> line>). >>> I've also looked at arm-none-linux-gnueabihf configuration with neon FPU >>> and >>> there is no regression there. >>> >>> I therefore think this is all normal and expected. Note that under >>> current >>> trunk this should be different because neon-fp16 would be selected >>> instead >>> of vfp for default FPU with Cortex-A9. >>> >> >> OK, thanks for checking. So the version you sent on June 15th is OK? > > > Yes. > >> I can start a validation against current trunk, after Richard's series, >> it probably makes sense, doesn't i
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 19/06/17 15:31, Christophe Lyon wrote: On 19 June 2017 at 16:11, Thomas Preudhomme wrote: On 19/06/17 10:16, Thomas Preudhomme wrote: On 19/06/17 08:41, Christophe Lyon wrote: Hi Thomas, On 15 June 2017 at 18:18, Thomas Preudhomme wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). Testing was done with both compare_tests and the updated dg-cmp-results proposed in https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html Is this ok for trunk? I applied your patch on top of r249233, and noticed quite a few changes: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html Note that "Big-Regression" cases are caused by the fact that there a are PASS->XPASS and XFAILs disappear with your patch, and many (3000-4000) PASS disappear. In that intended? It certainly is not. I'd like to investigate this but the link to results for rev 249233 is broken. Could you provide me with the results you have for that so that I can compare manually? Actually yes it is, at least for the configurations with default (which still uses -mfpu=vfp in r249233) or VFP (whatever version) FPU. I've checked all the ->NA and ->UNSUPPORTED for the arm-none-linux-gnueabi configuration and none of them has a dg directive to select the neon unit (such as dg-additional-options ). I've also looked at arm-none-linux-gnueabihf configuration with neon FPU and there is no regression there. I therefore think this is all normal and expected. Note that under current trunk this should be different because neon-fp16 would be selected instead of vfp for default FPU with Cortex-A9. OK, thanks for checking. So the version you sent on June 15th is OK? Yes. I can start a validation against current trunk, after Richard's series, it probably makes sense, doesn't it? I think it'll give cleaner results yes. Note that the one with an explicit -mfpu=vfp* without neon will still have a lot of changes but at least the one with default FPU should be more readable. Thanks, Christophe Best regards, Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 19 June 2017 at 16:11, Thomas Preudhomme wrote: > > > On 19/06/17 10:16, Thomas Preudhomme wrote: >> >> >> >> On 19/06/17 08:41, Christophe Lyon wrote: >>> >>> Hi Thomas, >>> >>> >>> On 15 June 2017 at 18:18, Thomas Preudhomme >>> wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). Testing was done with both compare_tests and the updated dg-cmp-results proposed in https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html Is this ok for trunk? >>> >>> I applied your patch on top of r249233, and noticed quite a few changes: >>> >>> http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html >>> >>> >>> Note that "Big-Regression" cases are caused by the fact that there a >>> are PASS->XPASS and XFAILs disappear with your patch, and many >>> (3000-4000) PASS disappear. >>> In that intended? >> >> >> It certainly is not. I'd like to investigate this but the link to results >> for >> rev 249233 is broken. Could you provide me with the results you have for >> that so >> that I can compare manually? > > > Actually yes it is, at least for the configurations with default (which > still uses -mfpu=vfp in r249233) or VFP (whatever version) FPU. I've checked > all the ->NA and ->UNSUPPORTED for the arm-none-linux-gnueabi configuration > and none of them has a dg directive to select the neon unit (such as > dg-additional-options ). > I've also looked at arm-none-linux-gnueabihf configuration with neon FPU and > there is no regression there. > > I therefore think this is all normal and expected. Note that under current > trunk this should be different because neon-fp16 would be selected instead > of vfp for default FPU with Cortex-A9. > OK, thanks for checking. So the version you sent on June 15th is OK? I can start a validation against current trunk, after Richard's series, it probably makes sense, doesn't it? Thanks, Christophe > Best regards, > > Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 19/06/17 10:16, Thomas Preudhomme wrote: On 19/06/17 08:41, Christophe Lyon wrote: Hi Thomas, On 15 June 2017 at 18:18, Thomas Preudhomme wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). Testing was done with both compare_tests and the updated dg-cmp-results proposed in https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html Is this ok for trunk? I applied your patch on top of r249233, and noticed quite a few changes: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html Note that "Big-Regression" cases are caused by the fact that there a are PASS->XPASS and XFAILs disappear with your patch, and many (3000-4000) PASS disappear. In that intended? It certainly is not. I'd like to investigate this but the link to results for rev 249233 is broken. Could you provide me with the results you have for that so that I can compare manually? Actually yes it is, at least for the configurations with default (which still uses -mfpu=vfp in r249233) or VFP (whatever version) FPU. I've checked all the ->NA and ->UNSUPPORTED for the arm-none-linux-gnueabi configuration and none of them has a dg directive to select the neon unit (such as dg-additional-options ). I've also looked at arm-none-linux-gnueabihf configuration with neon FPU and there is no regression there. I therefore think this is all normal and expected. Note that under current trunk this should be different because neon-fp16 would be selected instead of vfp for default FPU with Cortex-A9. Best regards, Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 19 June 2017 at 11:16, Thomas Preudhomme wrote: > > > On 19/06/17 08:41, Christophe Lyon wrote: >> >> Hi Thomas, >> >> >> On 15 June 2017 at 18:18, Thomas Preudhomme >> wrote: >>> >>> Hi, >>> >>> Conditions checked for ARM targets in vector-related effective targets >>> are inconsistent: >>> >>> * sometimes arm*-*-* is checked >>> * sometimes Neon is checked >>> * sometimes arm_neon_ok and sometimes arm_neon is used for neon check >>> * sometimes check_effective_target_* is used, sometimes >>> is-effective-target >>> >>> This patch consolidate all of these check into using is-effective-target >>> arm_neon and when little endian was checked, the check is kept. >>> >>> ChangeLog entry is as follows: >>> >>> *** gcc/testsuite/ChangeLog *** >>> >>> 2017-06-06 Thomas Preud'homme >>> >>> * lib/target-supports.exp (check_effective_target_vect_int): >>> Replace >>> current ARM check by ARM NEON's availability check. >>> (check_effective_target_vect_intfloat_cvt): Likewise. >>> (check_effective_target_vect_uintfloat_cvt): Likewise. >>> (check_effective_target_vect_floatint_cvt): Likewise. >>> (check_effective_target_vect_floatuint_cvt): Likewise. >>> (check_effective_target_vect_shift): Likewise. >>> (check_effective_target_whole_vector_shift): Likewise. >>> (check_effective_target_vect_bswap): Likewise. >>> (check_effective_target_vect_shift_char): Likewise. >>> (check_effective_target_vect_long): Likewise. >>> (check_effective_target_vect_float): Likewise. >>> (check_effective_target_vect_perm): Likewise. >>> (check_effective_target_vect_perm_byte): Likewise. >>> (check_effective_target_vect_perm_short): Likewise. >>> (check_effective_target_vect_widen_sum_hi_to_si_pattern): >>> Likewise. >>> (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. >>> (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. >>> (check_effective_target_vect_widen_mult_hi_to_si): Likewise. >>> (check_effective_target_vect_widen_mult_qi_to_hi_pattern): >>> Likewise. >>> (check_effective_target_vect_widen_mult_hi_to_si_pattern): >>> Likewise. >>> (check_effective_target_vect_widen_shift): Likewise. >>> (check_effective_target_vect_extract_even_odd): Likewise. >>> (check_effective_target_vect_interleave): Likewise. >>> (check_effective_target_vect_multiple_sizes): Likewise. >>> (check_effective_target_vect64): Likewise. >>> (check_effective_target_vect_max_reduc): Likewise. >>> >>> Testing: Testsuite shows no regression when targeting ARMv7-A with >>> -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with >>> default FPU and float ABI (soft). Testing was done with both >>> compare_tests >>> and the updated dg-cmp-results proposed in >>> https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html >>> >>> Is this ok for trunk? >>> >> >> I applied your patch on top of r249233, and noticed quite a few changes: >> >> http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html >> >> Note that "Big-Regression" cases are caused by the fact that there a >> are PASS->XPASS and XFAILs disappear with your patch, and many >> (3000-4000) PASS disappear. >> In that intended? > > > It certainly is not. I'd like to investigate this but the link to results > for rev 249233 is broken. Could you provide me with the results you have for > that so that I can compare manually? > The results for 249233 are here: http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/249233/ (reminder, I'm using dejagnu-1.6+, thus pre-pending multilib flags rather than appending) Thanks, Christophe > Best regards, > > Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 19/06/17 08:41, Christophe Lyon wrote: Hi Thomas, On 15 June 2017 at 18:18, Thomas Preudhomme wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). Testing was done with both compare_tests and the updated dg-cmp-results proposed in https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html Is this ok for trunk? I applied your patch on top of r249233, and noticed quite a few changes: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html Note that "Big-Regression" cases are caused by the fact that there a are PASS->XPASS and XFAILs disappear with your patch, and many (3000-4000) PASS disappear. In that intended? It certainly is not. I'd like to investigate this but the link to results for rev 249233 is broken. Could you provide me with the results you have for that so that I can compare manually? Best regards, Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
Hi Thomas, On 15 June 2017 at 18:18, Thomas Preudhomme wrote: > Hi, > > Conditions checked for ARM targets in vector-related effective targets > are inconsistent: > > * sometimes arm*-*-* is checked > * sometimes Neon is checked > * sometimes arm_neon_ok and sometimes arm_neon is used for neon check > * sometimes check_effective_target_* is used, sometimes is-effective-target > > This patch consolidate all of these check into using is-effective-target > arm_neon and when little endian was checked, the check is kept. > > ChangeLog entry is as follows: > > *** gcc/testsuite/ChangeLog *** > > 2017-06-06 Thomas Preud'homme > > * lib/target-supports.exp (check_effective_target_vect_int): Replace > current ARM check by ARM NEON's availability check. > (check_effective_target_vect_intfloat_cvt): Likewise. > (check_effective_target_vect_uintfloat_cvt): Likewise. > (check_effective_target_vect_floatint_cvt): Likewise. > (check_effective_target_vect_floatuint_cvt): Likewise. > (check_effective_target_vect_shift): Likewise. > (check_effective_target_whole_vector_shift): Likewise. > (check_effective_target_vect_bswap): Likewise. > (check_effective_target_vect_shift_char): Likewise. > (check_effective_target_vect_long): Likewise. > (check_effective_target_vect_float): Likewise. > (check_effective_target_vect_perm): Likewise. > (check_effective_target_vect_perm_byte): Likewise. > (check_effective_target_vect_perm_short): Likewise. > (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. > (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. > (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. > (check_effective_target_vect_widen_mult_hi_to_si): Likewise. > (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. > (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. > (check_effective_target_vect_widen_shift): Likewise. > (check_effective_target_vect_extract_even_odd): Likewise. > (check_effective_target_vect_interleave): Likewise. > (check_effective_target_vect_multiple_sizes): Likewise. > (check_effective_target_vect64): Likewise. > (check_effective_target_vect_max_reduc): Likewise. > > Testing: Testsuite shows no regression when targeting ARMv7-A with > -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with > default FPU and float ABI (soft). Testing was done with both compare_tests > and the updated dg-cmp-results proposed in > https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html > > Is this ok for trunk? > I applied your patch on top of r249233, and noticed quite a few changes: http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249233-consistent_neon_check.patch/report-build-info.html Note that "Big-Regression" cases are caused by the fact that there a are PASS->XPASS and XFAILs disappear with your patch, and many (3000-4000) PASS disappear. In that intended? Thanks, Christophe > Best regards, > > Thomas > > On 13/06/17 20:22, Christophe Lyon wrote: >> >> Hi Thomas, >> >> On 13 June 2017 at 11:08, Thomas Preudhomme >> wrote: >>> >>> Hi, >>> >>> Conditions checked for ARM targets in vector-related effective targets >>> are inconsistent: >>> >>> * sometimes arm*-*-* is checked >>> * sometimes Neon is checked >>> * sometimes arm_neon_ok and sometimes arm_neon is used for neon check >>> * sometimes check_effective_target_* is used, sometimes >>> is-effective-target >>> >>> This patch consolidate all of these check into using is-effective-target >>> arm_neon and when little endian was checked, the check is kept. >>> >>> ChangeLog entry is as follows: >>> >>> *** gcc/testsuite/ChangeLog *** >>> >>> 2017-06-06 Thomas Preud'homme >>> >>> * lib/target-supports.exp (check_effective_target_vect_int): >>> Replace >>> current ARM check by ARM NEON's availability check. >>> (check_effective_target_vect_intfloat_cvt): Likewise. >>> (check_effective_target_vect_uintfloat_cvt): Likewise. >>> (check_effective_target_vect_floatint_cvt): Likewise. >>> (check_effective_target_vect_floatuint_cvt): Likewise. >>> (check_effective_target_vect_shift): Likewise. >>> (check_effective_target_whole_vector_shift): Likewise. >>> (check_effective_target_vect_bswap): Likewise. >>> (check_effective_target_vect_shift_char): Likewise. >>> (check_effective_target_vect_long): Likewise. >>> (check_effective_target_vect_float): Likewise. >>> (check_effective_target_vect_perm): Likewise. >>> (check_effective_target_vect_perm_byte): Likewise. >>> (check_effective_target_vect_perm_short): Likewise. >>> (check_effective_target_vect_widen_sum_hi_to_si_pattern): >>> Likewise. >>> (check_effective_targ
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). Testing was done with both compare_tests and the updated dg-cmp-results proposed in https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01030.html Is this ok for trunk? Best regards, Thomas On 13/06/17 20:22, Christophe Lyon wrote: Hi Thomas, On 13 June 2017 at 11:08, Thomas Preudhomme wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targ
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 14/06/17 09:29, Christophe Lyon wrote: On 14 June 2017 at 10:25, Thomas Preudhomme wrote: On 13/06/17 20:22, Christophe Lyon wrote: Hi Thomas, On 13 June 2017 at 11:08, Thomas Preudhomme wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). That's strange, my testing detects a syntax error: Executed from: gcc.dg/vect/vect.exp gcc.dg/vect/slp-9.c: error executing dg-final: unbalanced close paren Indeed, I can see the missing parenthesis. I've checked again with the sum file and even with -v -v -v -v dg-cmp-results does not show any regression. compare_tests does though but is often more noisy (saying some tests having disappeared and appeared). This sounds like dg-cmp-results needs to be improved here. I'll do that first then test a fixed version of the patch. I did patch compare_tests a while ago such that it catches ERROR message from dejagnu (r240288) So dg-cmp-results assume there is only one tool tested in the .sum file (it throws everything before "^Running" and everything after "^[[:space:]]+===" which it assumes is the summary. Gosh, I've used it countless time in that way... Will provide a patch to make it work also in that setup. Best regards, Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 14 June 2017 at 10:25, Thomas Preudhomme wrote: > > > On 13/06/17 20:22, Christophe Lyon wrote: >> >> Hi Thomas, >> >> On 13 June 2017 at 11:08, Thomas Preudhomme >> wrote: >>> >>> Hi, >>> >>> Conditions checked for ARM targets in vector-related effective targets >>> are inconsistent: >>> >>> * sometimes arm*-*-* is checked >>> * sometimes Neon is checked >>> * sometimes arm_neon_ok and sometimes arm_neon is used for neon check >>> * sometimes check_effective_target_* is used, sometimes >>> is-effective-target >>> >>> This patch consolidate all of these check into using is-effective-target >>> arm_neon and when little endian was checked, the check is kept. >>> >>> ChangeLog entry is as follows: >>> >>> *** gcc/testsuite/ChangeLog *** >>> >>> 2017-06-06 Thomas Preud'homme >>> >>> * lib/target-supports.exp (check_effective_target_vect_int): >>> Replace >>> current ARM check by ARM NEON's availability check. >>> (check_effective_target_vect_intfloat_cvt): Likewise. >>> (check_effective_target_vect_uintfloat_cvt): Likewise. >>> (check_effective_target_vect_floatint_cvt): Likewise. >>> (check_effective_target_vect_floatuint_cvt): Likewise. >>> (check_effective_target_vect_shift): Likewise. >>> (check_effective_target_whole_vector_shift): Likewise. >>> (check_effective_target_vect_bswap): Likewise. >>> (check_effective_target_vect_shift_char): Likewise. >>> (check_effective_target_vect_long): Likewise. >>> (check_effective_target_vect_float): Likewise. >>> (check_effective_target_vect_perm): Likewise. >>> (check_effective_target_vect_perm_byte): Likewise. >>> (check_effective_target_vect_perm_short): Likewise. >>> (check_effective_target_vect_widen_sum_hi_to_si_pattern): >>> Likewise. >>> (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. >>> (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. >>> (check_effective_target_vect_widen_mult_hi_to_si): Likewise. >>> (check_effective_target_vect_widen_mult_qi_to_hi_pattern): >>> Likewise. >>> (check_effective_target_vect_widen_mult_hi_to_si_pattern): >>> Likewise. >>> (check_effective_target_vect_widen_shift): Likewise. >>> (check_effective_target_vect_extract_even_odd): Likewise. >>> (check_effective_target_vect_interleave): Likewise. >>> (check_effective_target_vect_multiple_sizes): Likewise. >>> (check_effective_target_vect64): Likewise. >>> (check_effective_target_vect_max_reduc): Likewise. >>> >>> Testing: Testsuite shows no regression when targeting ARMv7-A with >>> -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with >>> default FPU and float ABI (soft). >>> >> >> That's strange, my testing detects a syntax error: >> >> Executed from: gcc.dg/vect/vect.exp >> gcc.dg/vect/slp-9.c: error executing dg-final: unbalanced close paren > > > Indeed, I can see the missing parenthesis. I've checked again with the sum > file and even with -v -v -v -v dg-cmp-results does not show any regression. > compare_tests does though but is often more noisy (saying some tests having > disappeared and appeared). > This sounds like dg-cmp-results needs to be improved here. I'll do that > first then test a fixed version of the patch. > I did patch compare_tests a while ago such that it catches ERROR message from dejagnu (r240288) > Many thanks for the testing! > >> >> See >> http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249142-consistent_neon_check/report-build-info.html >> for a full picture. >> >> Note that the cells with "BETTER" seem to be mostly several PASSes >> becoming unsupported. >> >> Thanks, > > > Best regards, > > Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
On 13/06/17 20:22, Christophe Lyon wrote: Hi Thomas, On 13 June 2017 at 11:08, Thomas Preudhomme wrote: Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). That's strange, my testing detects a syntax error: Executed from: gcc.dg/vect/vect.exp gcc.dg/vect/slp-9.c: error executing dg-final: unbalanced close paren Indeed, I can see the missing parenthesis. I've checked again with the sum file and even with -v -v -v -v dg-cmp-results does not show any regression. compare_tests does though but is often more noisy (saying some tests having disappeared and appeared). This sounds like dg-cmp-results needs to be improved here. I'll do that first then test a fixed version of the patch. Many thanks for the testing! See http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249142-consistent_neon_check/report-build-info.html for a full picture. Note that the cells with "BETTER" seem to be mostly several PASSes becoming unsupported. Thanks, Best regards, Thomas
Re: [PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
Hi Thomas, On 13 June 2017 at 11:08, Thomas Preudhomme wrote: > Hi, > > Conditions checked for ARM targets in vector-related effective targets > are inconsistent: > > * sometimes arm*-*-* is checked > * sometimes Neon is checked > * sometimes arm_neon_ok and sometimes arm_neon is used for neon check > * sometimes check_effective_target_* is used, sometimes is-effective-target > > This patch consolidate all of these check into using is-effective-target > arm_neon and when little endian was checked, the check is kept. > > ChangeLog entry is as follows: > > *** gcc/testsuite/ChangeLog *** > > 2017-06-06 Thomas Preud'homme > > * lib/target-supports.exp (check_effective_target_vect_int): Replace > current ARM check by ARM NEON's availability check. > (check_effective_target_vect_intfloat_cvt): Likewise. > (check_effective_target_vect_uintfloat_cvt): Likewise. > (check_effective_target_vect_floatint_cvt): Likewise. > (check_effective_target_vect_floatuint_cvt): Likewise. > (check_effective_target_vect_shift): Likewise. > (check_effective_target_whole_vector_shift): Likewise. > (check_effective_target_vect_bswap): Likewise. > (check_effective_target_vect_shift_char): Likewise. > (check_effective_target_vect_long): Likewise. > (check_effective_target_vect_float): Likewise. > (check_effective_target_vect_perm): Likewise. > (check_effective_target_vect_perm_byte): Likewise. > (check_effective_target_vect_perm_short): Likewise. > (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. > (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. > (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. > (check_effective_target_vect_widen_mult_hi_to_si): Likewise. > (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. > (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. > (check_effective_target_vect_widen_shift): Likewise. > (check_effective_target_vect_extract_even_odd): Likewise. > (check_effective_target_vect_interleave): Likewise. > (check_effective_target_vect_multiple_sizes): Likewise. > (check_effective_target_vect64): Likewise. > (check_effective_target_vect_max_reduc): Likewise. > > Testing: Testsuite shows no regression when targeting ARMv7-A with > -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with > default FPU and float ABI (soft). > That's strange, my testing detects a syntax error: Executed from: gcc.dg/vect/vect.exp gcc.dg/vect/slp-9.c: error executing dg-final: unbalanced close paren See http://people.linaro.org/~christophe.lyon/cross-validation/gcc-test-patches/249142-consistent_neon_check/report-build-info.html for a full picture. Note that the cells with "BETTER" seem to be mostly several PASSes becoming unsupported. Thanks, Christophe > Is this ok for trunk? > > Best regards, > > Thomas
[PATCH, GCC/testsuite/ARM] Consistently check for neon in vect effective targets
Hi, Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. ChangeLog entry is as follows: *** gcc/testsuite/ChangeLog *** 2017-06-06 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. Testing: Testsuite shows no regression when targeting ARMv7-A with -mfpu=neon-fpv4 and -mfloat-abi=hard or when targeting Cortex-M3 with default FPU and float ABI (soft). Is this ok for trunk? Best regards, Thomas diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index ded6383cc1f9a1489cd83e1dace0c2fc48e252c3..d7367999fc9df8cf7c654fbb03a059b309e062d6 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2916,7 +2916,7 @@ proc check_effective_target_vect_int { } { || [istarget alpha*-*-*] || [istarget ia64-*-*] || [istarget aarch64*-*-*] - || [check_effective_target_arm32] + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && ([et-is-effective-target mips_loongson] || [et-is-effective-target mips_msa])) } { @@ -2944,8 +2944,7 @@ proc check_effective_target_vect_intfloat_cvt { } { if { [istarget i?86-*-*] || [istarget x86_64-*-*] || ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_intfloat_cvt_saved($et_index) 1 @@ -2987,8 +2986,7 @@ proc check_effective_target_vect_uintfloat_cvt { } { || ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) || [istarget aarch64*-*-*] - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_uintfloat_cvt_saved($et_index) 1 @@ -3016,8 +3014,7 @@ proc check_effective_target_vect_floatint_cvt { } { if { [istarget i?86-*-*] || [istarget x86_64-*-*] || ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_floatint_cvt_saved($et_index) 1 @@ -3043,8 +3040,7 @@ proc check_effective_target_vect_floatuint_cvt { } { set et_vect_floatuint_cvt_saved($et_index) 0 if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) - || ([istarget arm*-*-*] - && [check_effective_target_arm_neon_ok]) + || [is-effective-target arm_neon] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) } { set et_vect_floatuint_cvt_saved($et_index) 1 @@ -4903,7 +4899,7 @@ proc check_effective_target_vect_shift { } { || [istarget ia64-*