diff options
author | Jakub Jelinek <jakub@redhat.com> | 2022-03-02 11:04:35 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2022-03-02 11:04:35 +0100 |
commit | d7b4c8feee11ea04b83f9996654c96b130588570 (patch) | |
tree | 56850b821c5a541b83b1b48c0f355b2bc844e432 | |
parent | 58394373a70f4381bcc6d86423cffa05759b699c (diff) | |
download | gcc-d7b4c8feee11ea04b83f9996654c96b130588570.zip gcc-d7b4c8feee11ea04b83f9996654c96b130588570.tar.gz gcc-d7b4c8feee11ea04b83f9996654c96b130588570.tar.bz2 |
testsuite: Fix up pr104637 testcase [PR104637]
This testcase FAILs everywhere for 3 reasons:
1) the testcase can't work on ia32, where sizeof (long double) == 12
and as it is not a power of 2, we disallow creating vectors with such
elements, -mx32 and -m64 are fine
2) the testcase emits a lot of -Wdiv-by-zero warnings, I've just added
-Wno-div-by-zero to dg-options
3) my fault, when tweaking the testcase I've missed 33 initializers of
a 32 element vector which didn't change anything on the ICE, but is
still reported
This patch fixes all of it, tested with
RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} i386.exp=pr104637.c'
both without the LRA fix where it ICEs and with it where it passes
everywhere.
2022-03-02 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/104637
* gcc.target/i386/pr104637.c: Don't run on ia32. Add -Wno-div-by-zero
to dg-options.
(foo): Remove extraneous initializer.
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr104637.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr104637.c b/gcc/testsuite/gcc.target/i386/pr104637.c index 65e8635..36e8b6e 100644 --- a/gcc/testsuite/gcc.target/i386/pr104637.c +++ b/gcc/testsuite/gcc.target/i386/pr104637.c @@ -1,5 +1,5 @@ -/* { dg-do compile } */ -/* { dg-options "-Og -fno-forward-propagate -mavx" } */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-Og -fno-forward-propagate -mavx -Wno-div-by-zero" } */ typedef short __attribute__((__vector_size__ (64))) U; typedef unsigned long long __attribute__((__vector_size__ (32))) V; @@ -13,7 +13,7 @@ void foo (char a, char b, _Complex char c, V v) { u = (U) { u[0] / 0, u[1] / 0, u[2] / 0, u[3] / 0, u[4] / 0, u[5] / 0, u[6] / 0, u[7] / 0, - u[8] / 0, u[0] / 0, u[9] / 0, u[10] / 0, u[11] / 0, u[12] / 0, u[13] / 0, u[14] / 0, u[15] / 0, + u[8] / 0, u[9] / 0, u[10] / 0, u[11] / 0, u[12] / 0, u[13] / 0, u[14] / 0, u[15] / 0, u[16] / 0, u[17] / 0, u[18] / 0, u[19] / 0, u[20] / 0, u[21] / 0, u[22] / 0, u[23] / 0, u[24] / 0, u[25] / 0, u[26] / 0, u[27] / 0, u[28] / 0, u[29] / 0, u[30] / 0, u[31] / 0 }; c += i; |