Ping https://gcc.gnu.org/pipermail/gcc-patches/2022-February/590958.html
From: Haochen Gui <guih...@linux.ibm.com> This patch corrects the match pattern in pr56605.c. The former pattern is wrong and test case fails with GCC11. It should match following insn on each subtarget after mode promotion is disabled. The patch need to be backported to GCC11. //gimple _17 = (unsigned int) _20; prolog_loop_niters.4_23 = _17 & 3; //rtl (insn 19 18 20 2 (parallel [ (set (reg:CC 208) (compare:CC (and:SI (subreg:SI (reg:DI 207) 0) (const_int 3 [0x3])) (const_int 0 [0]))) (set (reg:SI 129 [ prolog_loop_niters.5 ]) (and:SI (subreg:SI (reg:DI 207) 0) (const_int 3 [0x3]))) ]) 197 {*andsi3_imm_mask_dot2} Rebased. Regstrapped on ppc64-linux-gnu. Also tested with ppc64-vxworks7r2 (gcc-12), where it's also needed. Ok to install? for gcc/testsuite/ChangeLog PR target/102146 * gcc.target/powerpc/pr56605.c: Correct match pattern in combine pass. --- gcc/testsuite/gcc.target/powerpc/pr56605.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/pr56605.c b/gcc/testsuite/gcc.target/powerpc/pr56605.c index 7695f87db6f66..651a88e3cc7f9 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr56605.c +++ b/gcc/testsuite/gcc.target/powerpc/pr56605.c @@ -11,5 +11,4 @@ void foo (short* __restrict sb, int* __restrict ia) ia[i] = (int) sb[i]; } -/* { dg-final { scan-rtl-dump-times {\(compare:CC \((?:and|zero_extend):(?:[SD]I) \((?:sub)?reg:[SD]I} 1 "combine" } } */ - +/* { dg-final { scan-rtl-dump-times {\(compare:CC \(and:SI \(subreg:SI \(reg:DI} 1 "combine" } } */ -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>