From: Kelvin Nilsen Date: Wed, 20 Jun 2018 20:06:51 +0000 (+0000) Subject: rs6000-c.c (altivec_overloaded_builtins): Change behavior of vec_packsu (vector unsig... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d8e7bf49a8c27e168f64edcaf5ea308b21340e73;p=gcc.git rs6000-c.c (altivec_overloaded_builtins): Change behavior of vec_packsu (vector unsigned long long... gcc/ChangeLog: 2018-06-20 Kelvin Nilsen * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change behavior of vec_packsu (vector unsigned long long, vector unsigned long long) to match behavior of vec_packs with same signature. gcc/testsuite/ChangeLog: 2018-06-20 Kelvin Nilsen * gcc.target/powerpc/builtins-1.c: Adjust dg directives to scan for vpkudus in place of vpksdus. * gcc.target/powerpc/builtins-3-p8.c: Likewise. From-SVN: r261819 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37fc7daf9b2..46633a59bb3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-06-20 Kelvin Nilsen + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change + behavior of vec_packsu (vector unsigned long long, vector unsigned + long long) to match behavior of vec_packs with same signature. + 2018-06-20 Chung-Lin Tang Thomas Schwinge Cesar Philippidis diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index 73be09b4e54..06332f05d0a 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -2544,7 +2544,7 @@ const struct altivec_builtin_types altivec_overloaded_builtins[] = { RS6000_BTI_unsigned_V8HI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_PACKSU, P8V_BUILTIN_VPKSDUS, RS6000_BTI_unsigned_V4SI, RS6000_BTI_V2DI, RS6000_BTI_V2DI, 0 }, - { ALTIVEC_BUILTIN_VEC_PACKSU, P8V_BUILTIN_VPKSDUS, + { ALTIVEC_BUILTIN_VEC_PACKSU, P8V_BUILTIN_VPKUDUS, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, 0 }, { ALTIVEC_BUILTIN_VEC_VPKSWUS, ALTIVEC_BUILTIN_VPKSWUS, RS6000_BTI_unsigned_V8HI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 271ac3de750..0343e8e5324 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-06-20 Kelvin Nilsen + + * gcc.target/powerpc/builtins-1.c: Adjust dg directives to scan + for vpkudus in place of vpksdus. + * gcc.target/powerpc/builtins-3-p8.c: Likewise. + 2018-06-20 Nathan Sidwell PR c++/85634 diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-1.c b/gcc/testsuite/gcc.target/powerpc/builtins-1.c index 45727b965b4..8baa8029bd3 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-1.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-1.c @@ -297,7 +297,7 @@ int main () vec_mul mulld | mullw, mulhwu vec_nor xxlnor vec_or xxlor - vec_packsu vpksdus + vec_packsu vpkudus (matches twice due to -dp option) vec_ perm vperm vec_ round xvrdpi vec_sel xxsel @@ -335,7 +335,7 @@ int main () /* { dg-final { scan-assembler-times "xxlnor" 6 } } */ /* { dg-final { scan-assembler-times "xxlor" 11 { target { ilp32 } } } } */ /* { dg-final { scan-assembler-times "xxlor" 7 { target { lp64 } } } } */ -/* { dg-final { scan-assembler-times "vpksdus" 2 } } */ +/* { dg-final { scan-assembler-times {\mvpkudus\M} 1 } } */ /* { dg-final { scan-assembler-times "vperm" 4 } } */ /* { dg-final { scan-assembler-times "xvrdpi" 2 } } */ /* { dg-final { scan-assembler-times "xxsel" 10 } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c b/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c index f7f31073e83..94021818868 100644 --- a/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c +++ b/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c @@ -219,6 +219,8 @@ test_neg_double (vector double x) test_vui_packs_vull_vull 1 vpkudus test_vui_packs_vssi_vssi 1 vpkshss test_vsi_packsu_vssi_vssi 1 vpkshus + test_vsi_packsu_vsll_vsll 1 vpksdus + test_vsi_packsu_vull_vull 1 vpkudus test_unsigned_char_popcnt_signed_char 1 vpopcntb test_unsigned_char_popcnt_unsigned_char 1 vpopcntb test_unsigned_short_popcnt_signed_short 1 vpopcnth @@ -241,11 +243,11 @@ test_neg_double (vector double x) /* { dg-final { scan-assembler-times "vcmpequd" 1 } } */ /* { dg-final { scan-assembler-times "vpkudum" 1 } } */ /* { dg-final { scan-assembler-times "vpksdss" 1 } } */ -/* { dg-final { scan-assembler-times "vpkudus" 1 } } */ +/* { dg-final { scan-assembler-times "vpkudus" 2 } } */ /* { dg-final { scan-assembler-times "vpkuhus" 2 } } */ /* { dg-final { scan-assembler-times "vpkshss" 1 } } */ /* { dg-final { scan-assembler-times "vpkshus" 1 } } */ -/* { dg-final { scan-assembler-times "vpksdus" 2 } } */ +/* { dg-final { scan-assembler-times "vpksdus" 1 } } */ /* { dg-final { scan-assembler-times "vpkuwus" 2 } } */ /* { dg-final { scan-assembler-times "vpopcntb" 2 } } */ /* { dg-final { scan-assembler-times "vpopcnth" 2 } } */