https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78900
--- Comment #4 from Michael Meissner <meissner at gcc dot gnu.org> --- Author: meissner Date: Tue Jan 10 20:03:00 2017 New Revision: 244285 URL: https://gcc.gnu.org/viewcvs?rev=244285&root=gcc&view=rev Log: 2017-01-10 Michael Meissner <meiss...@linux.vnet.ibm.com> Backport from mainline 2016-12-30 Michael Meissner <meiss...@linux.vnet.ibm.com> PR target/78900 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some assertions. Add support for doing the signbit if the IEEE 128-bit floating point value is in a GPR. * config/rs6000/rs6000.md (Fsignbit): Delete. (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa". Update the length attribute if the value is in a GPR. (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate the sign or zero extension instruction, since the value is always 0/1. (signbit<mode>2_dm2): Delete using <Fsignbit>. Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/rs6000/rs6000.c branches/gcc-6-branch/gcc/config/rs6000/rs6000.md