On 7/22/24 10:42 PM, Vineet Gupta wrote:


On 7/22/24 10:58, Jeff Law wrote:
On 7/22/24 11:52 AM, Vineet Gupta wrote:
On 7/9/24 17:26, Jeff Law wrote:
On 7/9/24 6:11 PM, Vineet Gupta wrote:
Couple weeks ago, 502.gcc was failing (PR/115669) which got fixed promptly.
On today's trunk I'm seeing a runtime compare failure on 500.perlbench.

       2024-07-09 d17889dbffd5 i386: Implement .SAT_TRUNC for unsigned
integers

Anyone else seeing this ?

          > 3830:  mbox2:
dWshe3Aa1EULre4CT5O/ErYFrk+o/EOoebA1kTVjQVQQH2EjT5fHcYnwjj2MdBmZu5y3Ce4Ei4QQZo/SNrry9g
          >        mbox2:
uuWPimQiU0D4UrwFP+LS0lFNph4qL43WV1A6T3tHleatIOUaHixhrJU9NoA2lc9KjwYpdEL0lNTXkvo8ymNHzA
          >               ^
          > 3832:  mbox3:
8f4jdv6GIf0lX3DcdwRdEm6/aZwnmGX6n86GzCvmkwTKFXQjwlwVHc8jy8XlcyiIPr3yXTkgVOiP3cRYvyYQPg
          >        mbox3:
9xQySgP6qbhfxl8Usu1WfGA5UhStB5AN31wueGM6OF4Jp59DkqJPu6ksGblOU5u0nQapQC1e9oYIs16a2mq2NA
          >               ^
          > specdiff run completed
Given it it looks like a hash and Robin has indicated that LMUL > 2 is
mucking up the hashing code in xz, I wouldn't be surprised if it's the
same thing.

The Embecosm guys were going to take a looksie.
Quick update:

Edwin bisected this to

      2024-07-06 273f16a125c4 [to-be-committed][v3][RISC-V] Handle bit
manipulation of SImode values

He can provide more details.
Ugh.  That's mine...  We've been running a variant of that internally,
so my first thought is whether or not the generalizations done as it I
prepped it for upstream are goofy.

Anyway, I'll own it.

It seems the operands for and+not got swapped in one of the patterns.
Follows restores perlbench

diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md
index f403ba8dbbad..d262430485e7 100644
--- a/gcc/config/riscv/bitmanip.md
+++ b/gcc/config/riscv/bitmanip.md
@@ -675,7 +675,7 @@
    "#"
    "&& reload_completed"
     [(set (match_dup 4) (match_dup 2))
-    (set (match_dup 4) (and:DI (not:DI (match_dup 4)) (match_dup 1)))
+    (set (match_dup 4) (and:DI (not:DI (match_dup 1)) (match_dup 4)))
      (set (match_dup 0) (any_or:DI (ashift:DI (const_int 1) (match_dup
5)) (match_dup 3)))]
    { operands[5] = gen_lowpart (QImode, operands[4]); }
    [(set_attr "type" "bitmanip")])
Yea, that looks like I just plain goof'd it.   OK for the trunk.

jeff

Reply via email to