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