Hi! On Wed, Nov 14, 2018 at 11:22:58AM -0800, Michael Eager wrote: > The (mem:SI) is converted to (mem:QI). > > The return from make_extract() is > (zero_extract:SI (mem:QI (reg/v/f:SI 50 [ gp ])) > (const_int 1 [0x1]) > (const_int 2 [0x2])) > > The target has an instruction pattern for zero_extract, but it matches > SI values, not QI. So the instruction which implements a test of a bit > flag is never generated. The RTL documentation says: If @var{loc} is in memory, its mode must be a single-byte integer mode. But obviously various ports use other modes, too. I wonder if that ever worked well. Segher