[Patch] [Aarch64] PR rtl-optimization/87763 - this patch fixes gcc.target/aarch64/lsl_asr_sbfiz.c

Jeff Law law@redhat.com
Tue Apr 23 15:49:00 GMT 2019


On 4/16/19 10:29 AM, Steve Ellcey wrote:
> Re-ping.  I know there are discussions about bigger changes to fix the
> various failures listed in PR rtl-optimization/87763 but this patch
> at least fixes one of them (gcc.target/aarch64/lsl_asr_sbfiz.c).
So we actually call simplify_set with:

(set (reg:SI 93)
    (ashiftrt:SI (ashift:SI (reg:SI 95)
            (const_int 29 [0x1d]))
        (const_int 10 [0xa])))

Then we expand that via make_compound_operation into:

(set (reg:SI 93)
    (ashift:SI (subreg:SI (sign_extract:DI (subreg:DI (reg:SI 95) 0)
                (const_int 3 [0x3])
                (const_int 0 [0])) 0)
        (const_int 19 [0x13])))


This is almost certainly related to the target preferring DImode for its
insertion/extraction insns.  See get_best_extraction_insn.

Still investigating...

jeff



More information about the Gcc-patches mailing list