On 19 June 2017 at 16:47, Thomas Preudhomme
<thomas.preudho...@foss.arm.com> wrote:
>
>
> On 19/06/17 15:31, Christophe Lyon wrote:
>>
>> On 19 June 2017 at 16:11, Thomas Preudhomme
>> <thomas.preudho...@foss.arm.com> 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
>>>>> <thomas.preudho...@foss.arm.com> 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  <thomas.preudho...@arm.com>
>>>>>>
>>>>>>         * 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 <something that would add -mfpu on the command
>>> 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 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.
>

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 ;-)

>>
>> Thanks,
>>
>> Christophe
>>
>>> Best regards,
>>>
>>> Thomas

Reply via email to