This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Add X != !X pattern
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Richard Biener <rguenther at suse dot de>
- Cc: Andreas Schwab <schwab at suse dot de>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 5 Aug 2015 03:20:21 -0700
- Subject: Re: [PATCH] Add X != !X pattern
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot LSU dot 2 dot 11 dot 1508041549270 dot 19642 at zhemvz dot fhfr dot qr> <mvmh9oet5cn dot fsf at hawking dot suse dot de> <alpine dot LSU dot 2 dot 11 dot 1508051213360 dot 19642 at zhemvz dot fhfr dot qr>
On Wed, Aug 5, 2015 at 3:16 AM, Richard Biener <rguenther@suse.de> wrote:
> On Wed, 5 Aug 2015, Andreas Schwab wrote:
>
>> Richard Biener <rguenther@suse.de> writes:
>>
>> > * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
>> > bool compares on RHS.
>> > * match.pd: Add X ==/!= !X is false/true pattern.
>>
>> ERROR in VTST/VTSTQ (/opt/gcc/gcc-20150805/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vtst.c line 97 in buffer 'expected_signed') at type uint8x8 index 1: got 0x1 != 0xff (signed input)
>> FAIL: gcc.target/aarch64/advsimd-intrinsics/vtst.c -O1 execution test
>> FAIL: gcc.target/aarch64/simd/int_comparisons_1.c scan-assembler-times [ \t]cmtst[ \t]+v[0-9]+.[0-9]+[bshd],[ \t]*v[0-9]+.[0-9]+[bshd],[ \t]+v[0-9]+.[0-9]+[bshd] 14
>> FAIL: gcc.target/aarch64/simd/int_comparisons_1.c scan-assembler-times [ \t]cmtst[ \t]+d[0-9]+,[ \t]*d[0-9]+,[ \t]+d[0-9]+ 4
>> FAIL: gcc.target/aarch64/simd/int_comparisons_2.c execution test
>> FAIL: gcc.target/aarch64/singleton_intrinsics_1.c scan-assembler-times \\tcmtst\\td[0-9]+, d[0-9]+, d[0-9]+ 2
>
> Ick - somebody will have to come up with a reduced testcase for one of
> this (best an execute fail). Reduced to one failing case so I can
> investigate with a cross compiler.
>
> Eventually smells like a aarch64 vector specific issue or a latent
> issue with the truth_valued_p predicate for vector types.
Or constant_boolean_node is not returning {-1,-1,-1,-1} for true vectors.
Thanks,
Andrew
>
> Richard.
>
>> Andreas.
>>
>>
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Dilip Upmanyu, Graham Norton, HRB 21284 (AG Nuernberg)