This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug math/21941] powerpc: Wrong register constraint for xssqrtqp in sqrtf128


https://sourceware.org/bugzilla/show_bug.cgi?id=21941

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.26/master has been updated
       via  645b7635ba8fd58062245419e8bb668ab90cd3ec (commit)
      from  2aa1a7a8f8b9b7879bc6eb1c34d1580f992c406d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=645b7635ba8fd58062245419e8bb668ab90cd3ec

commit 645b7635ba8fd58062245419e8bb668ab90cd3ec
Author: Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Date:   Mon Aug 7 09:14:14 2017 -0300

    powerpc: Restrict xssqrtqp operands to Vector Registers (bug 21941)

    POWER ISA 3.0 introduces the xssqrtqp instructions, which expects
    operands to be in Vector Registers (Altivec/VMX), even though this
    instruction belongs to the Vector-Scalar Instruction Set.

    In GCC's Extended Assembly for POWER, the 'wq' register constraint is
    provided for use with IEEE 754 128-bit floating-point values.  However,
    this constraint does not limit the register allocation to Vector
    Registers (Altivec/VMX) and could assign a Vector-Scalar Register (VSX)
    to the operands of the instruction.

    This patch changes the register constraint used in sqrtf128 from 'wq' to
    'v', in order to request a Vector Register (Altivec/VMX) for use with
    the xssqrtqp instruction.

    Tested for powerpc64le and --with-cpu=power9.

        [BZ #21941]
        * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrtf128): Since
        xssqrtqp requires operands to be in Vector Registers
        (Altivec/VMX), replace the register constraint 'wq' with 'v'.
        * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c
        (__ieee754_sqrtf128): Likewise.

    (cherry picked from commit 4d98ace9de3183309cb394cd0110eda5ad2d2531)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |    9 +++++++++
 sysdeps/powerpc/fpu/math_private.h                 |    2 +-
 .../powerpc/powerpc64le/power9/fpu/e_sqrtf128.c    |    2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]