]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/testsuite/ChangeLog
2016-11-22 Michael Collison <michael.collison@arm.com>
authorcollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Nov 2016 07:47:25 +0000 (07:47 +0000)
committercollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Nov 2016 07:47:25 +0000 (07:47 +0000)
commitb2aa1313204348df27492fa2e22df7a4b1b260de
treee928fb5fdbc6ba8b63c59833f9f46e4eafc0ae9a
parentccf112916613cc297d5185d06ec32c68af291013
2016-11-22  Michael Collison  <michael.collison@arm.com>

* config/aarch64/aarch64-protos.h
(aarch64_and_split_imm1, aarch64_and_split_imm2)
(aarch64_and_bitmask_imm): New prototypes
* config/aarch64/aarch64.c (aarch64_and_split_imm1):
New overloaded function to create bit mask covering the
lowest to highest bits set.
(aarch64_and_split_imm2): New overloaded functions to create bit
mask of zeros between first and last bit set.
(aarch64_and_bitmask_imm): New function to determine if a integer
is a valid two instruction "and" operation.
* config/aarch64/aarch64.md:(and<mode>3): New define_insn and _split
allowing wider range of constants with "and" operations.
* (ior<mode>3, xor<mode>3): Use new LOGICAL2 iterator to prevent
"and" operator from matching restricted constant range used for
ior and xor operators.
* config/aarch64/constraints.md (UsO constraint): New SImode constraint
for constants in "and" operantions.
(UsP constraint): New DImode constraint for constants in "and" operations.
* config/aarch64/iterators.md (lconst2): New mode iterator.
(LOGICAL2): New code iterator.
* config/aarch64/predicates.md (aarch64_logical_and_immediate): New
predicate
(aarch64_logical_and_operand): New predicate allowing extended constants
for "and" operations.
* testsuite/gcc.target/aarch64/and_const.c: New test to verify
additional constants are recognized and fewer instructions generated.
* testsuite/gcc.target/aarch64/and_const2.c: New test to verify
additional constants are recognized and fewer instructions generated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242739 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/constraints.md
gcc/config/aarch64/iterators.md
gcc/config/aarch64/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/and_const.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/and_const2.c [new file with mode: 0644]