On Thu, Jun 16, 2011 at 06:08:17PM +0200, Bernd Schmidt wrote: > Another operation that exists on a number of processors is an "average" > operation, which computes "(ext (A) + ext (B) + 1) >> 1" from two input > operands. Some of our backends try to represnt this with complex RTL > expressions, others use unspec. This patch adds two new rtx codes. > > Bootstrapped and tested on i686-linux (with the usual pass39-frag test > failures). Ok?
Please add the new codes also to dwarf2out.c (mem_loc_descriptor), otherwise if it will be optimized away you might get ICEs when emitting debug info. Similarly for CRSB or whatever for the sign bit count. If you don't feel like adding support for emitting it in DWARF (CRSB might be similar to CLZ and might even use the same routine with some tweaks, AVG/UAVG should be easy too), just add it to the list of unhandled cases. Jakub