aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/array.c
diff options
context:
space:
mode:
authorSudakshina Das <sudi.das@arm.com>2018-01-05 10:45:37 +0000
committerSudakshina Das <sudi@gcc.gnu.org>2018-01-05 10:45:37 +0000
commit494795904009eb99985a45a5c371f2ddbfaf96e1 (patch)
tree0d732f1a8c2df27c03d68a309676fa6b4895de39 /gcc/fortran/array.c
parentbef52a6895ddb01d4b349f2f43b8ab0cd99fa3be (diff)
downloadgcc-494795904009eb99985a45a5c371f2ddbfaf96e1.zip
gcc-494795904009eb99985a45a5c371f2ddbfaf96e1.tar.gz
gcc-494795904009eb99985a45a5c371f2ddbfaf96e1.tar.bz2
[PATCH PR82439][simplify-rtx] Simplify (x | y) == x -> (y & ~x) == 0
This patch add support for the missing transformation of (x | y) == x -> (y & ~x) == 0. The transformation for (x & y) == x case already exists in simplify-rtx.c since 2014 as of r218503 and this patch only adds a couple of extra patterns for the IOR case. This benefits targets that have the BICS instruction to generate better code. For targets that do not have the BICS instructions, it still results in no worse code generation and gives out 2 instructions. ChangeLog Entries: *** gcc/ChangeLog *** 2018-01-05 Sudakshina Das <sudi.das@arm.com> PR target/82439 * simplify-rtx.c (simplify_relational_operation_1): Add simplifications of (x|y) == x for BICS pattern. *** gcc/testsuite/ChangeLog *** 2018-01-05 Sudakshina Das <sudi.das@arm.com> PR target/82439 * gcc.target/aarch64/bics_5.c: New test. * gcc.target/arm/bics_5.c: Likewise. From-SVN: r256275
Diffstat (limited to 'gcc/fortran/array.c')
0 files changed, 0 insertions, 0 deletions