From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1725) id 42B2A3858D28; Tue, 23 Nov 2021 22:40:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 42B2A3858D28 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: William Schmidt To: gcc-cvs@gcc.gnu.org Subject: [gcc r10-10289] rs6000: Fix vec_cpsgn parameter order (PR101985) X-Act-Checkin: gcc X-Git-Author: Bill Schmidt X-Git-Refname: refs/heads/releases/gcc-10 X-Git-Oldrev: 7aeb20d63a85a3ab8b55d70d27edea3cfa53acfb X-Git-Newrev: 049aa656393299d2ff23f0292c6f49e5057e2909 Message-Id: <20211123224035.42B2A3858D28@sourceware.org> Date: Tue, 23 Nov 2021 22:40:35 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Nov 2021 22:40:35 -0000 https://gcc.gnu.org/g:049aa656393299d2ff23f0292c6f49e5057e2909 commit r10-10289-g049aa656393299d2ff23f0292c6f49e5057e2909 Author: Bill Schmidt Date: Tue Nov 23 15:57:27 2021 -0600 rs6000: Fix vec_cpsgn parameter order (PR101985) Backport r12-4361 to releases/gcc-10. 2021-11-23 Bill Schmidt gcc/ PR target/101985 * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. gcc/testsuite/ PR target/101985 * gcc.target/powerpc/pr101985-1.c: New. * gcc.target/powerpc/pr101985-2.c: New. Diff: --- gcc/config/rs6000/altivec.h | 2 +- gcc/testsuite/gcc.target/powerpc/pr101985-1.c | 18 ++++++++++++++++++ gcc/testsuite/gcc.target/powerpc/pr101985-2.c | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/gcc/config/rs6000/altivec.h b/gcc/config/rs6000/altivec.h index b40e750dc13..c03d7c9b149 100644 --- a/gcc/config/rs6000/altivec.h +++ b/gcc/config/rs6000/altivec.h @@ -129,7 +129,7 @@ #define vec_vcfux __builtin_vec_vcfux #define vec_cts __builtin_vec_cts #define vec_ctu __builtin_vec_ctu -#define vec_cpsgn __builtin_vec_copysign +#define vec_cpsgn(x,y) __builtin_vec_copysign(y,x) #define vec_double __builtin_vec_double #define vec_doublee __builtin_vec_doublee #define vec_doubleo __builtin_vec_doubleo diff --git a/gcc/testsuite/gcc.target/powerpc/pr101985-1.c b/gcc/testsuite/gcc.target/powerpc/pr101985-1.c new file mode 100644 index 00000000000..b4753ab83d7 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr101985-1.c @@ -0,0 +1,18 @@ +/* PR target/101985 */ +/* { dg-do run } */ +/* { dg-require-effective-target vsx_hw } */ +/* { dg-options "-O2 -mvsx" } */ + +#include + +int +main (void) +{ + vector float a = { 1, 2, - 3, - 4}; + vector float b = {-10, 20, -30, 40}; + vector float c = { 10, 20, -30, -40}; + a = vec_cpsgn (a, b); + if (! vec_all_eq (a, c)) + __builtin_abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.target/powerpc/pr101985-2.c b/gcc/testsuite/gcc.target/powerpc/pr101985-2.c new file mode 100644 index 00000000000..148ad657366 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr101985-2.c @@ -0,0 +1,18 @@ +/* PR target/101985 */ +/* { dg-do run } */ +/* { dg-require-effective-target vsx_hw } */ +/* { dg-options "-O2 -mvsx" } */ + +#include + +int +main (void) +{ + vector double a = { 1, -4}; + vector double b = { -10, 40}; + vector double c = { 10, -40}; + a = vec_cpsgn (a, b); + if (! vec_all_eq (a, c)) + __builtin_abort (); + return 0; +}