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 >