On Mon, Nov 10, 2014 at 3:02 PM, Christophe Lyon <christophe.l...@linaro.org> wrote: > On 30 October 2014 23:02, Christophe Lyon <christophe.l...@linaro.org> wrote: >> On 29 October 2014 16:28, Ramana Radhakrishnan >> <ramana....@googlemail.com> wrote: >>> On Wed, Oct 29, 2014 at 3:26 PM, Christophe Lyon >>> <christophe.l...@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.l...@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.l...@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.