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")])

-Vineet

Reply via email to