diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-12-15 00:21:10 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-12-15 00:21:10 +0100 |
commit | 0717971864b4a7542455b4847b893c0bc7ad0d89 (patch) | |
tree | 7f432040009434397526df8a1ce1d71092f0cc91 | |
parent | bbc8d04f0e238cd5e86c240021b2c0aaf1b58d1b (diff) | |
download | gcc-0717971864b4a7542455b4847b893c0bc7ad0d89.zip gcc-0717971864b4a7542455b4847b893c0bc7ad0d89.tar.gz gcc-0717971864b4a7542455b4847b893c0bc7ad0d89.tar.bz2 |
re PR target/88489 (FAIL: gcc.target/i386/avx512f-vfixupimmss-2.c execution test)
PR target/88489
* config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
(avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
instead of UNSPEC_FIXUPIMM.
* gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test.
* gcc.target/i386/avx512vl-vfixupimmss-2.c: New test.
From-SVN: r267160
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c | 20 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c | 20 |
5 files changed, 51 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1ae1cc7..9ef7f90 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2018-12-15 Jakub Jelinek <jakub@redhat.com> + PR target/88489 + * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. + (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it + instead of UNSPEC_FIXUPIMM. + PR rtl-optimization/88478 * cselib.c (cselib_record_sets): Move sets[i].src_elt tests after REG_P (dest) test. diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index be65f90..877759c 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -95,6 +95,7 @@ UNSPEC_RCP14 UNSPEC_RSQRT14 UNSPEC_FIXUPIMM + UNSPEC_SFIXUPIMM UNSPEC_SCALEF UNSPEC_VTERNLOG UNSPEC_GETEXP @@ -8872,7 +8873,7 @@ [(match_operand:VF_128 1 "register_operand" "v") (match_operand:<sseintvecmode> 2 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>") (match_operand:SI 3 "const_0_to_255_operand")] - UNSPEC_FIXUPIMM))] + UNSPEC_SFIXUPIMM))] "TARGET_AVX512F" "vfixupimm<ssescalarmodesuffix>\t{%3, <round_saeonly_mask_op4>%2, %1, %0<mask_operand4>|%0<mask_operand4>, %1, %<iptr>2<round_saeonly_mask_op4>, %3}"; [(set_attr "prefix" "evex") diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8931a4c..bbc7e3f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2018-12-15 Jakub Jelinek <jakub@redhat.com> + PR target/88489 + * gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test. + * gcc.target/i386/avx512vl-vfixupimmss-2.c: New test. + PR rtl-optimization/88478 * g++.dg/opt/pr88478.C: New test. diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c b/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c new file mode 100644 index 0000000..3d2bd1a --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c @@ -0,0 +1,20 @@ +/* { dg-do run } */ +/* { dg-options "-mavx512vl -O2 -std=gnu99" } */ +/* { dg-require-effective-target avx512vl } */ +/* { dg-require-effective-target c99_runtime } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#include "avx512f-vfixupimmsd-2.c" + +static void +test_256 (void) +{ + test_512 (); +} + +static void +test_128 (void) +{ +} diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c b/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c new file mode 100644 index 0000000..9b32488 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c @@ -0,0 +1,20 @@ +/* { dg-do run } */ +/* { dg-options "-mavx512vl -O2 -std=gnu99" } */ +/* { dg-require-effective-target avx512vl } */ +/* { dg-require-effective-target c99_runtime } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#include "avx512f-vfixupimmss-2.c" + +static void +test_256 (void) +{ + test_512 (); +} + +static void +test_128 (void) +{ +} |