On Fri, Jun 21, 2013 at 05:11:39PM +0200, Uros Bizjak wrote: > > Is it ok to install? > > This is OK for mainline. > > BTW: There are many other single-underscore prefixed intrinsics [1] > besides _bextr_*. Perhaps you should also add these to the intrinsics > header, then the complete header could be backported to other release > branches.
I actually don't understand how this can work, bmi_bextr_{si,di} expanders have just 3 operands (one target, 2 arguments), so just by giving it 4 operands instead just means the last one is dropped on the floor. Why do you need a builtin for this at all? I was expecting that _bextr_u{32,64} would be implemented either using __bextr_u{32,64} or at least using it's underlying builtin, by constructing the combined len/start argument with shifts/ands first. But I admit I haven't applied the patch and looked how it works. Jakub