diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-03-22 08:14:24 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-03-22 08:14:24 +0000 |
commit | b6436f79be2592584b911fa8393e26980058d086 (patch) | |
tree | 3ced0e28bf89f76feeb6fa38480fa88f1ba0ee69 /gcc/testsuite | |
parent | 3d78ea44f3ba437bb5cedca8e3ddaad1bd69eb87 (diff) | |
download | gcc-b6436f79be2592584b911fa8393e26980058d086.tar.gz |
PR target/70300
* config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
instead of source if operands[1] is xmm16 and above and
!TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
vec_interleave_lowv4sf if we need to unpack xmm16 and above.
* gcc.target/i386/pr70300.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234393 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr70300.c | 25 |
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 25a36ddbc20..aad5d3f241e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2016-03-22 Jakub Jelinek <jakub@redhat.com> + PR target/70300 + * gcc.target/i386/pr70300.c: New test. + PR c++/70295 * c-c++-common/nonnull-1.c (func): Remove parens around cp4 != 0. (func2): New function for cond with parens, xfail warning for c++. diff --git a/gcc/testsuite/gcc.target/i386/pr70300.c b/gcc/testsuite/gcc.target/i386/pr70300.c new file mode 100644 index 00000000000..ddfadfb5957 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr70300.c @@ -0,0 +1,25 @@ +/* PR target/70300 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -mtune=amdfam10 -mavx512f" } */ + +typedef _Complex A __attribute__ ((mode (SC))); +typedef _Complex B __attribute__ ((mode (DC))); +typedef _Complex C __attribute__ ((mode (TC))); + +C +foo (A a, B b, C c, A d, B e, C f) +{ + b -= a; + d += a; + a += f; + return a + b + d + e; +} + +__attribute__((target ("avx512vl"))) C +bar (A a, B b, C c, A d, B e, C f) +{ + b -= a; + d += a; + a += f; + return a + b + d + e; +} |