On Mon, Mar 5, 2012 at 7:23 PM, Michael Meissner <meiss...@linux.vnet.ibm.com> wrote: > On power7 systems, the backend was not prepared to handle vector comparisons > with UNEQ, LTGT, ORDERED, and UNORDERED tests, since there is no single > comparison instruction for these cases. This patch adds support for doing > vector conditional move involving these operations. I have bootstrapped the > compiler with these patches, and there were no regressions. The test > gcc.c-torture/execute/ieee/pr50340.c now passes if you build the compiler > using > --with-cpu=power7 as a default (or define ADDITIONAL_TORTURE_OPTIONS in the > site.exp file to add -mcpu=power7). Is this ok to install in 4.8? > > In addition, I would like to backport this fix to the current older branches. > Can I check it into the 4.7 branch or should this patch wait until after the > 4.7 release for 4.7.1? > > 2012-03-05 Michael Meissner <meiss...@linux.vnet.ibm.com> > > PR target/50310 > * config/rs6000/vector.md (vector_uneq<mode>): Add support for > UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons. > (vector_ltgt<mode>): Likewise. > (vector_ordered<mode>): Likewise. > (vector_unordered<mode>): Likewise. > * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): > Likewise.
The logical operations on floating point registers seem weird, but okay. We need to ask the RMs if this patch is acceptable for GCC 4.7.0. Thanks, David