This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [testsuite,ARM] PR61153 Fix vbic and vorn tests


On Mon, Nov 10, 2014 at 3:02 PM, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
> On 30 October 2014 23:02, Christophe Lyon <christophe.lyon@linaro.org> wrote:
>> On 29 October 2014 16:28, Ramana Radhakrishnan
>> <ramana.gcc@googlemail.com> wrote:
>>> On Wed, Oct 29, 2014 at 3:26 PM, Christophe Lyon
>>> <christophe.lyon@linaro.org> wrote:
>>>> Hi,
>>>>
>>>> In PR61153, the vbic and vorn tests fail because when compiled at -O0
>>>> the expected Neon instructions are not generated, making
>>>> scan-assembler fail.
>>>>
>>>> This patch:
>>>> - replaces -O0 by -O2
>>>> - moves the declaration of local variables used as intrinsics
>>>> parameters and results to global declarations, to prevent the compiler
>>>> from optimizing the whole test away.
>>>>
>>>> OK?
>>>>
>>>
>>> If you really want to do it , do it in neon-testgen.ml and do it for
>>> the whole lot.
>>>
>>
>> I thought it wasn't used anymore.
>>
>> At -O2 I have many more failures :-(
>>
>> (vdup, vget_lane, vget_low, vmov, vset_lane)
>>
>> And -O1 doesn't do the trick either...
>>
>> Christophe.
>>
> Hi Ramana,
>
> Based on your request and on my above comment, I have modified
> neon-testgen.ml so that it sets -O2 in some testcases and -O0 by
> default.
>
> I've achieved this by adding a new value in the 'features' list in
> neon.ml, and set it to -O2 for vbic and vorn cases. neon-testgen.ml
> parses this value, and defaults to -O0.
> When not -O0, it also moves the input/output variables to global scope
> to avoid the whole test to be optimized out.
>
> I also fixed 3 warnings about 'or' being deprecated in neon.ml.
>
> OK?

Ok , thanks.

Ramana
>
> Christophe.
>
> 2014-11-10  Christophe Lyon  <christophe.lyon@linaro.org>
>
>     gcc/
>     * config/arm/neon-testgen.ml (emit_prologue): Handle new
>     compile_test_optim argument.
>     (emit_automatics): Rename to emit_variables. Support variable
>     indentation of its output.
>     (compile_test_optim): New function.
>     (test_intrinsic): Call compile_test_optim.
>     * config/arm/neon.ml (features): Add Compiler_optim.
>     (ops): Add Compiler_optim feature to Vbic and Vorn.
>     (type_in_crypto_only): Replace 'or' by '||'.
>     (reinterp): Likewise.
>     (reinterpq): Likewise.
>
>     testsuite/
>     * gcc.target/arm/neon/vbicQs16.c: Regenerate.
>     * gcc.target/arm/neon/vbicQs32.c: Likewise.
>     * gcc.target/arm/neon/vbicQs64.c: Likewise.
>     * gcc.target/arm/neon/vbicQs8.c: Likewise.
>     * gcc.target/arm/neon/vbicQu16.c: Likewise.
>     * gcc.target/arm/neon/vbicQu32.c: Likewise.
>     * gcc.target/arm/neon/vbicQu64.c: Likewise.
>     * gcc.target/arm/neon/vbicQu8.c: Likewise.
>     * gcc.target/arm/neon/vbics16.c: Likewise.
>     * gcc.target/arm/neon/vbics32.c: Likewise.
>     * gcc.target/arm/neon/vbics64.c: Likewise.
>     * gcc.target/arm/neon/vbics8.c: Likewise.
>     * gcc.target/arm/neon/vbicu16.c: Likewise.
>     * gcc.target/arm/neon/vbicu32.c: Likewise.
>     * gcc.target/arm/neon/vbicu64.c: Likewise.
>     * gcc.target/arm/neon/vbicu8.c: Likewise.
>     * gcc.target/arm/neon/vornQs16.c: Likewise.
>     * gcc.target/arm/neon/vornQs32.c: Likewise.
>     * gcc.target/arm/neon/vornQs64.c: Likewise.
>     * gcc.target/arm/neon/vornQs8.c: Likewise.
>     * gcc.target/arm/neon/vornQu16.c: Likewise.
>     * gcc.target/arm/neon/vornQu32.c: Likewise.
>     * gcc.target/arm/neon/vornQu64.c: Likewise.
>     * gcc.target/arm/neon/vornQu8.c: Likewise.
>     * gcc.target/arm/neon/vorns16.c: Likewise.
>     * gcc.target/arm/neon/vorns32.c: Likewise.
>     * gcc.target/arm/neon/vorns64.c: Likewise.
>     * gcc.target/arm/neon/vorns8.c: Likewise.
>     * gcc.target/arm/neon/vornu16.c: Likewise.
>     * gcc.target/arm/neon/vornu32.c: Likewise.
>     * gcc.target/arm/neon/vornu64.c: Likewise.
>     * gcc.target/arm/neon/vornu8.c: Likewise.
>
>>> regards
>>> Ramana
>>>> Christophe.
>>>>
>>>> 2014-10-29  Christophe Lyon  <christophe.lyon@linaro.org>
>>>>
>>>>     PR target/61153
>>>>     * gcc.target/arm/neon/vbicQs16.c: Compile at O2 and move variables
>>>>     declarations from local to global.
>>>>     * gcc.target/arm/neon/vbicQs16.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQs32.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQs64.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQs8.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQu16.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQu32.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQu64.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicQu8.c: Likewise.
>>>>     * gcc.target/arm/neon/vbics16.c: Likewise.
>>>>     * gcc.target/arm/neon/vbics32.c: Likewise.
>>>>     * gcc.target/arm/neon/vbics64.c: Likewise.
>>>>     * gcc.target/arm/neon/vbics8.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicu16.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicu32.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicu64.c: Likewise.
>>>>     * gcc.target/arm/neon/vbicu8.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQs16.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQs32.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQs64.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQs8.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQu16.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQu32.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQu64.c: Likewise.
>>>>     * gcc.target/arm/neon/vornQu8.c: Likewise.
>>>>     * gcc.target/arm/neon/vorns16.c: Likewise.
>>>>     * gcc.target/arm/neon/vorns32.c: Likewise.
>>>>     * gcc.target/arm/neon/vorns64.c: Likewise.
>>>>     * gcc.target/arm/neon/vorns8.c: Likewise.
>>>>     * gcc.target/arm/neon/vornu16.c: Likewise.
>>>>     * gcc.target/arm/neon/vornu32.c: Likewise.
>>>>     * gcc.target/arm/neon/vornu64.c: Likewise.
>>>>     * gcc.target/arm/neon/vornu8.c: Likewise.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]