https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78437

--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Created attachment 40098
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40098&action=edit
Tentative fix

It only affects Alpha (by default) but I no longer have access to Alpha
hardware so I'm going to play with it on SPARC.  Its effect on the assembly
code on Alpha is:

--- pr78437_1.s 2016-11-21 11:54:33.678363106 +0100
+++ pr78437_2.s 2016-11-21 11:54:40.230542615 +0100
@@ -62,7 +62,7 @@
        ldbu $7,max($5)         !gprellow
        sextb $8,$3
        stb $8,expected($2)             !gprellow
-       mov $3,$22
+       bis $31,$8,$22
        sextb $7,$7
        cmpeq $3,$7,$3
        beq $3,$L4

FWIW the change for PR rtl-opt/59461 eliminated 2 redundant extensions.

Reply via email to