re PR target/84845 (ICE: in extract_insn, at recog.c:2304: unrecognizable insn at...
authorJakub Jelinek <jakub@redhat.com>
Tue, 20 Mar 2018 10:59:26 +0000 (11:59 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 20 Mar 2018 10:59:26 +0000 (11:59 +0100)
commitcdeba3e07a1b54f9ab74d12c04c40672a1d17b89
treef616c6eeb2707140926f5ed6a3d5696b92eaf033
parent094daefb7b79201ee5b39b07a64f9947524e6b2d
re PR target/84845 (ICE: in extract_insn, at recog.c:2304: unrecognizable insn at -O2 and above at aarch64)

PR target/84845
* config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename
to ...
(*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this.  If pseudos can't
be created, use lowpart_subreg of operands[0] rather than operands[0]
itself.
(*aarch64_reg_<mode>3_minus_mask): Rename to ...
(*aarch64_ashl_reg_<mode>3_minus_mask): ... this.
(*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate
and n constraint instead of aarch64_shift_imm_di and Usd.
(*aarch64_reg_<optab>_minus<mode>3): Rename to ...
(*aarch64_<optab>_reg_minus<mode>3): ... this.

* gcc.c-torture/compile/pr84845.c: New test.

From-SVN: r258678
gcc/ChangeLog
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr84845.c [new file with mode: 0644]