On Thu, 2020-06-25 at 16:41 +0100, Nick Clifton via Gcc-patches wrote:
> 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.
Thanks.  You might also need to disable the define_insn since a pass like CE
could possibly construct a movcc insn without using the expander.  That in turn
would then re-open the possibility of the codegen issues we're seeing in those
testcases.

Jeff
> 

Reply via email to