Hi! On Fri, Nov 17, 2017 at 12:04:45AM -0500, Michael Meissner wrote: > This patch is an enhancement of a previous page that never got approved. > https://gcc.gnu.org/ml/gcc-patches/2017-10/threads.html#02124 > > In the original patch, I added support to the machine independent > infrastructure to support the rounding built-in functions for _Float<N> and > _Float<N>X types (i.e. roundf128, ceilf128, etc.). I also added PowerPC ISA > 3.0 support to generate these built-in functions. > > In addition to the previous changes, this patch now adds more optimizations > for > _Float<N> and _Float<N>X types in match.pd.
> +(define_insn "btrunc<mode>2" > + [(set (match_operand:IEEE128 0 "altivec_register_operand" "=v") > + (unspec:IEEE128 > + [(match_operand:IEEE128 1 "altivec_register_operand" "v")] > + UNSPEC_FRIZ))] > + "TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)" > + "xsrqpi 1,%0,%1,0" > + [(set_attr "type" "vecfloat") > + (set_attr "size" "128")]) Is this one correct? Truncate is RMC=1, not RMC=0, I think? The rest of the rs6000 part looks fine. Thanks! Segher