On Fri, Jan 31, 2020 at 10:12:08AM +0000, Tamar Christina wrote:
> 2020-01-31  Tamar Christina  <tamar.christ...@arm.com>
> 
>       PR 91838
>       * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
>       to truncate if allowed or reject combination.
> 
> gcc/testsuite/ChangeLog:
> 
> 2020-01-31  Tamar Christina  <tamar.christ...@arm.com>
> 
>       PR 91838
>       * g++.dg/pr91838.C: New test.

The test FAILs on i686-linux with:
FAIL: g++.dg/pr91838.C   (test for excess errors)
Excess errors:
/home/jakub/src/gcc/gcc/testsuite/g++.dg/pr91838.C:7:8: warning: MMX vector 
return without MMX enabled changes the ABI [-Wpsabi]
/home/jakub/src/gcc/gcc/testsuite/g++.dg/pr91838.C:7:3: warning: MMX vector 
argument without MMX enabled changes the ABI [-Wpsabi]
and on x86_64-linux with -m32 testing with failure to match the
expected pattern in there (or both with e.g. -m32/-mno-mmx/-mno-sse testing).
The test is also in a wrong directory, has non-standard specification that
it requires c++11 or later.

Fixed thusly, regtested on i686-linux and x86_64-linux (the latter with
--target_board=unix\{-m32/-mno-mmx/-mno-sse,-m32,-m64\}), committed to trunk
as obvious.

2020-01-31  Jakub Jelinek  <ja...@redhat.com>

        PR rtl-optimization/91838
        * g++.dg/pr91838.C: Moved to ...
        * g++.dg/opt/pr91838.C: ... here.  Require c++11 target instead of
        dg-skip-if for c++98.  Pass -Wno-psabi -w to avoid psabi style
        warnings on vector arg passing or return.  Add -masm=att on i?86/x86_64.
        Only check for pxor %xmm0, %xmm0 on lp64 i?86/x86_64.

diff --git a/gcc/testsuite/g++.dg/opt/pr91838.C 
b/gcc/testsuite/g++.dg/opt/pr91838.C
new file mode 100644
index 00000000000..fdf48094ade
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr91838.C
@@ -0,0 +1,11 @@
+/* { dg-do compile { target c++11 } } */
+/* { dg-additional-options "-O2 -Wno-psabi -w" } */
+/* { dg-additional-options "-masm=att" { target i?86-*-* x86_64-*-* } } */
+
+using T = unsigned char; // or ushort
+using V [[gnu::vector_size(8)]] = T;
+V f(V x) {
+  return x >> 8 * sizeof(T);
+}
+
+/* { dg-final { scan-assembler {pxor\s+%xmm0,\s+%xmm0} { target { { i?86-*-* 
x86_64-*-* } && lp64 } } } } */
diff --git a/gcc/testsuite/g++.dg/pr91838.C b/gcc/testsuite/g++.dg/pr91838.C
deleted file mode 100644
index 4dbaef05ce8..00000000000
--- a/gcc/testsuite/g++.dg/pr91838.C
+++ /dev/null
@@ -1,11 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-O2" } */
-/* { dg-skip-if "" { *-*-* } {-std=c++98} } */
-
-using T = unsigned char; // or ushort, or uint
-using V [[gnu::vector_size(8)]] = T;
-V f(V x) {
-  return x >> 8 * sizeof(T);
-}
-
-/* { dg-final { scan-assembler {pxor\s+%xmm0,\s+%xmm0} { target x86_64-*-* } } 
} */


        Jakub

Reply via email to