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