https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107270
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|pinskia at gcc dot gnu.org |unassigned at gcc dot gnu.org Status|ASSIGNED |NEW --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Earnshaw from comment #2) > But this is just BFI, so it's a costing issue. Fixing that still leaves us with: Trying 8 -> 15: 8: zero_extract(r100:DI,0x20,0)=r107:SI#0 REG_DEAD r107:SI 15: x0:DI=r100:DI&0xffffffff|r108:SI#0<<0x20 REG_DEAD r108:SI REG_DEAD r100:DI Failed to match this instruction: (set (reg/i:DI 0 x0) (ior:DI (ashift:DI (subreg:DI (reg:SI 108) 0) (const_int 32 [0x20])) (zero_extend:DI (reg:SI 107)))) Which is a BFI but there is no pattern to match that. I will submit my rtx_cost patch still but for now I am not going to add another pattern