constraints.md (Yv): New constraint.
authorJakub Jelinek <jakub@redhat.com>
Thu, 12 May 2016 08:30:25 +0000 (10:30 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 12 May 2016 08:30:25 +0000 (10:30 +0200)
commit40bd4bf95e68e252afdf863f1c3d5f22e30f819e
tree8f4584bb4783a5fd7ed9dd04545b2e2aabd63dd4
parenteb09cdcb1a8b55b9c9257119053b0f6f7b24edd9
constraints.md (Yv): New constraint.

* config/i386/constraints.md (Yv): New constraint.
* config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
* config/i386/i386.md (avx512fvecmode): New mode attr.
(*pushtf): Use v constraint instead of x.
(*movtf_internal): Likewise.  For TARGET_AVX512VL and
xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
(*absneg<mode>2): Use Yv constraint instead of x constraint.
(*absnegtf2_sse): Likewise.
(copysign<mode>3_const, copysign<mode>3_var): Likewise.
* config/i386/sse.md (*andnot<mode>3): Add avx512vl and
avx512f alternatives.
(*andnottf3, *<code><mode>3, *<code>tf3): Likewise.

* gcc.target/i386/avx512dq-abs-copysign-1.c: New test.
* gcc.target/i386/avx512vl-abs-copysign-1.c: New test.
* gcc.target/i386/avx512vl-abs-copysign-2.c: New test.

From-SVN: r236161
gcc/ChangeLog
gcc/config/i386/constraints.md
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512dq-abs-copysign-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-2.c [new file with mode: 0644]