On 7/9/24 8:14 PM, Xi Ruoyao wrote:
On Tue, 2024-07-09 at 16:10 -0700, Vineet Gupta wrote:
On 7/3/24 21:35, Xi Ruoyao wrote:
On Sun, 2024-06-30 at 17:47 -0700, Vineet Gupta wrote:
   - Don't hardcode SI in patterns, try to keep X to avoid potential
     sign extension pitfalls. Implementation wise requires skipping
     :MODE specifier in match_operand which is flagged as missing mode
     warning.
I'm unsure about this.  GCC Internal says:

‘isfinitem2’
Return 1 if operand 1 is a finite floating point number and 0 otherwise.
m is a scalar floating point mode. Operand 0 has mode SImode, and
operand 1 has mode m.

Likewise for isnormalm2.  BTW isinfm2 is missing in the page.

So per the doc SImode is required.  At least the doc should be updated
to say "operand 0 has an integer mode" or something if doing so is
intentionally allowed.

While the man page does say  these return int, for which SI mode whould
suffice, I feel that keeping it X is more flexible.

So we should change the gcc documentation - so you want to send a patch ?

I do want to change it (it'll make implementing this for LoongArch
easier as well) but I don't know what we precisely allow here.  "Any
integer mode" or something?
I'd lean towards any integer mode. I would expect that most targets would ultimately use their native word_mode.

Jeff

Reply via email to