+2018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ * 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 <cltang@codesourcery.com>
Thomas Schwinge <thomas@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
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 },
+2018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
+
+ * 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 <nathan@acm.org>
PR c++/85634
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
/* { 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 } } */
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
/* { 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 } } */