On Thu, Oct 13, 2011 at 11:51 PM, Paolo Bonzini <bonz...@gnu.org> wrote: > On 10/13/2011 10:07 PM, H.J. Lu wrote: >> >> On Thu, Oct 13, 2011 at 11:15 AM, Richard Kenner >> <ken...@vlsi1.ultra.nyu.edu> wrote: >>>> >>>> The answer to H.J.'s "Why do we do it for MEM then?" is simply >>>> "because no one ever thought about not doing it" >>> >>> No, that's false. The same expand_compound_operation / >>> make_compound_operation >>> pair is present in the MEM case as in the SET case. It's just that >>> there's some bug here that's noticable in not making proper MEMs that >>> doesn't show up in the SET case because of the way the insns are >>> structured. >>> >> >> When we have (and (OP) M) where >> >> (and (OP) M) == (and (OP) ((1<< ceil_log2 (M)) - 1) )) >> >> (and (OP) M) is zero_extract bits 0 to ceil_log2 (M). >> >> Does it look OK? > > Yes, it does. How did you test it? >
There is a testcase at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50696 It passes with my patch. -- H.J.