Hi, I tested the test case on Linux and AIX with both big and little endian. The test case requires lp64 target, so it won't be tested on 32-bit targets.
On big endian (both AIX and Linux), it should match (compare:CC (and:SI (subreg:SI (reg:DI 207) 4) On little endian (both AIX and Linux), it should match (compare:CC (and:SI (subreg:SI (reg:DI 207) 0) So, the pattern in my patch should work fine. /* { dg-final { scan-rtl-dump-times {\(compare:CC \(and:SI \(subreg:SI \(reg:DI} 1 "combine" } } */ Thanks. On 14/4/2022 上午 5:30, Segher Boessenkool wrote: > On Mon, Apr 11, 2022 at 08:54:14PM -0300, Alexandre Oliva wrote: >> On Apr 7, 2022, HAO CHEN GUI via Gcc-patches <gcc-patches@gcc.gnu.org> >> wrote: >> >>> Gentle ping this: >>> https://gcc.gnu.org/pipermail/gcc-patches/2022-February/590958.html >>> Thanks >> >>>> On 28/2/2022 上午 11:17, HAO CHEN GUI wrote: >> >>>>> 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. >> >>>>> -/* { dg-final { scan-rtl-dump-times {\(compare:CC >>>>> \((?:and|zero_extend):(?:DI) \((?:sub)?reg:[SD]I} 1 "combine" } } */ >>>>> +/* { dg-final { scan-rtl-dump-times {\(compare:CC \(and:SI \(subreg:SI >>>>> \(reg:DI} 1 "combine" } } */ >> >> >> How about this less strict change instead? >> >> >> ppc: testsuite: PROMOTE_MODE fallout pr56605 [PR102146] >> >> The test expects a compare of DImode values, but after the removal of >> PROMOTE_MODE from rs6000/, we get SImode. Adjust the expectations. >> >> Tested with gcc-11 targeting ppc64-vx7r2. Ok to install? > > This should have been tested on Linux as well: it is now broken on both > -m32 and -m64 there. Please revert? > > > Segher