[PATCH, GCC/testsuite/ARM] Enable mov?i_movw tests on ARM and big endian

Thomas Preudhomme thomas.preudhomme@foss.arm.com
Wed Oct 12 16:07:00 GMT 2016


On 12/10/16 17:01, Christophe Lyon wrote:
> On 12 October 2016 at 17:50, Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> wrote:
>>
>> On 12/10/16 16:29, Thomas Preudhomme wrote:
>>>
>>> Sorry :-(
>>>
>>> Here you are.
>>>
>>> Cheers,
>>>
>>> Thomas
>>>
>>> On 12/10/16 16:25, Kyrill Tkachov wrote:
>>>>
>>>>
>>>> On 12/10/16 16:21, Thomas Preudhomme wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> As reported by Christophe Lyon, gcc.target/arm/movdi_movw test fails on
>>>>> big
>>>>> endian targets. This is because on big endian targets the low bits of a
>>>>> 64bit
>>>>> value would be in the highest numbered register of a pair rather than
>>>>> the
>>>>> lowest numbered register as on little endian targets. This patch fixes
>>>>> that by
>>>>> allowing both r0 and r1. It also changes effective target to use
>>>>> arm_thumb2_ok
>>>>> instead of arm_thumb2 to allow the test on ARM mode targets.
>>>>>
>>>>> ChangeLog entry is as follows:
>>>>>
>>>>>
>>>>> *** gcc/testsuite/ChangeLog ***
>>>>>
>>>>> 2016-10-11  Thomas Preud'homme <thomas.preudhomme@arm.com>
>>>>>
>>>>>         * gcc.target/arm/movhi_movw.c: Enable test for ARM mode.
>>>>>         * gcc.target/arm/movsi_movw.c: Likewise.
>>>>>         * gcc.target/arm/movdi_movw.c: Likewise and adapt scan-assembler
>>>>>         directive to work on big endian targets.
>>>>>
>>>>>
>>>>> Tested testcases with armeb-none-eabi for -march=armv8-a.
>>>>>
>>>>> Is this ok for trunk?
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Thomas
>>>>>
>>>>
>>>> -ERRNOPATCH.
>>>> Thanks,
>>>> Kyrill
>>
>>
>> --- a/gcc/testsuite/gcc.target/arm/movdi_movw.c
>> +++ b/gcc/testsuite/gcc.target/arm/movdi_movw.c
>> @@ -1,4 +1,4 @@
>> -/* { dg-do compile { target { arm_thumb2 || arm_thumb1_movt_ok } } } */
>> +/* { dg-do compile { target { arm_thumb2_ok || arm_thumb1_movt_ok } } } */
>
> what is the purpose of arm_thumb2_ok || arm_thumb1_movt_ok
> if you do not use -mthumb in dg-options?

Checking whether movw is available, otherwise the test would fail. This 
condition ensures that the -march or -mcpu passed indicates either a Thumb-2 
capable target or a target with Thumb-1 and movw such as ARMv8-M.

Best regards,

Thomas



More information about the Gcc-patches mailing list