Hi Guys,

  I am checking in the patch below to fix several failures in the GCC
  testsuite for the M32R target.  The issue is the movsicc pattern which
  is a holdover from when the port from converted from using cc0.  The
  pattern was written as if a previous instruction had set the CC bits,
  whereas in fact it is supposed to move CC bits into a general
  register.

  The patch disables the movsicc pattern, which means that some
  optimizations can be missed, but it does also fix the following
  tests:

> PASS: gcc.c-torture/execute/20040709-1.c   -O2  execution test
> PASS: gcc.c-torture/execute/20040709-1.c   -O3 -fomit-frame-pointer 
> -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
> PASS: gcc.c-torture/execute/20040709-1.c   -O3 -g  execution test
> PASS: gcc.c-torture/execute/20040709-1.c   -Os  execution test
> PASS: gcc.c-torture/execute/20040709-1.c   -O2 -flto -fno-use-linker-plugin 
> -flto-partition=none  execution test
> PASS: gcc.c-torture/execute/20040709-1.c   -O2 -flto -fuse-linker-plugin 
> -fno-fat-lto-objects  execution test
> PASS: gcc.c-torture/execute/20040709-2.c   -O2  execution test
> PASS: gcc.c-torture/execute/20040709-2.c   -O3 -fomit-frame-pointer 
> -funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
> PASS: gcc.c-torture/execute/20040709-2.c   -O3 -g  execution test
> PASS: gcc.c-torture/execute/20040709-2.c   -Os  execution test
> PASS: gcc.c-torture/execute/20040709-2.c   -O2 -flto -fno-use-linker-plugin 
> -flto-partition=none  execution test
> PASS: gcc.c-torture/execute/20040709-2.c   -O2 -flto -fuse-linker-plugin 
> -fno-fat-lto-objects  execution test
> PASS: gcc.c-torture/execute/20040709-3.c   -O2  execution test
> PASS: gcc.c-torture/execute/20040709-3.c   -O3 -g  execution test
> PASS: gcc.c-torture/execute/20040709-3.c   -Os  execution test
> PASS: gcc.c-torture/execute/20040709-3.c   -O2 -flto -fno-use-linker-plugin 
> -flto-partition=none  execution test
> PASS: gcc.c-torture/execute/20040709-3.c   -O2 -flto -fuse-linker-plugin 
> -fno-fat-lto-objects  execution test
> PASS: gcc.dg/strcmpopt_2.c execution test
> PASS: gcc.dg/lto/pr67452 c_lto_pr67452_0.o-c_lto_pr67452_0.o link,  -O2 -flto 
> -fopenmp-simd 

Cheers
  Nick

gcc/ChangeLog
2020-06-25  Nick Clifton  <ni...@redhat.com>

        * config/m32r/m32r.md (movsicc): Disable pattern.

diff --git a/gcc/config/m32r/m32r.md b/gcc/config/m32r/m32r.md
index 823342af1b4..6ecd9ce89ab 100644
--- a/gcc/config/m32r/m32r.md
+++ b/gcc/config/m32r/m32r.md
@@ -2162,6 +2162,12 @@
   ""
   "
 {
+  /* FIXME: This expansion is hold over from a failed conversion of this
+     port away from using cc0.  It still relies upon the last comparison
+     being the one that is now tested.  Disabled for now in order to
+     improve the generation of working code.  */
+  FAIL;
+
   if (! zero_and_one (operands [2], operands [3]))
     FAIL;
 

Reply via email to