Re: [committed] [RISC-V] Avoid sub-word mode comparisons with Zicond

2023-08-05 Thread Jeff Law
On 8/5/23 01:46, Xiao Zeng wrote: The operands to the comparison need to be in DImode for rv64 and SImode for rv32.  That's the X iterator. After analyzing the rtl log, I can't agree more with this sentence. Note the mode of the comparison operands may be different than the mode of the de

Re: [committed] [RISC-V] Avoid sub-word mode comparisons with Zicond

2023-08-05 Thread Xiao Zeng
On Wed, Aug 02, 2023 at 01:41:00 PM  Jeff Law wrote: > >c-torture/execute/pr59014-2.c fails with the Zicond work on rv64.  We >miscompile the "foo" routine because we have eliminated a required sign >extension. > >The key routine looks like this: > >foo (long long int x, long long int y) >{ >   if

[committed] [RISC-V] Avoid sub-word mode comparisons with Zicond

2023-08-01 Thread Jeff Law
tch changes the 6 zicond patterns to use the X iterator on the comparison inputs. That at least makes the patterns correct and fixes this particular testcase. There's a few other lurking problems that I'll address in additional patches. Committed to the trunk, Jeff commit 2d73f2eb8