+2018-10-05 Steve Ellcey <sellcey@cavium.com>
+
+ PR tree-optimization/71625
+ * /gcc.target/aarch64/vclz.c (test_vclz_s8): Add noinline attribute.
+ (test_vclz_s16): Ditto.
+ (test_vclz_s32): Ditto.
+ (test_vclzq_s8): Ditto.
+ (test_vclzq_s16): Ditto.
+ (test_vclzq_s32): Ditto.
+ (test_vclz_u8): Ditto.
+ (test_vclz_u16): Ditto.
+ (test_vclz_u32): Ditto.
+ (test_vclzq_u8): Ditto.
+ (test_vclzq_u16): Ditto.
+ (test_vclzq_u32): Ditto.
+ * gcc.target/aarch64/vneg_s.c (test_vneg_s8): Ditto.
+ (test_vneg_s16): Ditto.
+ (test_vneg_s32): Ditto.
+ (test_vneg_s64): Ditto.
+ (test_vnegd_s64): Ditto.
+ (test_vnegq_s8): Ditto.
+ (test_vnegq_s16): Ditto.
+ (test_vnegq_s32): Ditto.
+ (test_vnegq_s64): Ditto.
+
2018-10-05 Segher Boessenkool <segher@kernel.crashing.org>
PR target/87509
if (a [i] != b [i]) \
return 1;
-int
+int __attribute__ ((noinline))
test_vclz_s8 ()
{
int i;
/* Double scan-assembler-times to take account of unsigned functions. */
/* { dg-final { scan-assembler-times "clz\\tv\[0-9\]+\.8b, v\[0-9\]+\.8b" 4 } } */
-int
+int __attribute__ ((noinline))
test_vclz_s16 ()
{
int i;
/* Double scan-assembler-times to take account of unsigned functions. */
/* { dg-final { scan-assembler-times "clz\\tv\[0-9\]+\.4h, v\[0-9\]+\.4h" 10} } */
-int
+int __attribute__ ((noinline))
test_vclz_s32 ()
{
int i;
/* Double scan-assembler-times to take account of unsigned functions. */
/* { dg-final { scan-assembler-times "clz\\tv\[0-9\]+\.2s, v\[0-9\]+\.2s" 34 } } */
-int
+int __attribute__ ((noinline))
test_vclzq_s8 ()
{
int i;
/* Double scan-assembler-times to take account of unsigned functions. */
/* { dg-final { scan-assembler-times "clz\\tv\[0-9\]+\.16b, v\[0-9\]+\.16b" 2 } } */
-int
+int __attribute__ ((noinline))
test_vclzq_s16 ()
{
int i;
/* Double scan-assembler-times to take account of unsigned functions. */
/* { dg-final { scan-assembler-times "clz\\tv\[0-9\]+\.8h, v\[0-9\]+\.8h" 6 } } */
-int
+int __attribute__ ((noinline))
test_vclzq_s32 ()
{
int i;
/* Unsigned versions. */
-int
+int __attribute__ ((noinline))
test_vclz_u8 ()
{
int i;
/* ASM scan near test for signed version. */
-int
+int __attribute__ ((noinline))
test_vclz_u16 ()
{
int i;
/* ASM scan near test for signed version. */
-int
+int __attribute__ ((noinline))
test_vclz_u32 ()
{
int i;
/* ASM scan near test for signed version. */
-int
+int __attribute__ ((noinline))
test_vclzq_u8 ()
{
int i;
/* ASM scan near test for signed version. */
-int
+int __attribute__ ((noinline))
test_vclzq_u16 ()
{
int i;
/* ASM scan near test for signed version. */
-int
+int __attribute__ ((noinline))
test_vclzq_u32 ()
{
int i;
force_simd (res); \
}
-int
+int __attribute__ ((noinline))
test_vneg_s8 ()
{
int8x8_t a;
/* { dg-final { scan-assembler-times "neg\\tv\[0-9\]+\.8b, v\[0-9\]+\.8b" 1 } } */
-int
+int __attribute__ ((noinline))
test_vneg_s16 ()
{
int16x4_t a;
/* { dg-final { scan-assembler-times "neg\\tv\[0-9\]+\.4h, v\[0-9\]+\.4h" 2 } } */
-int
+int __attribute__ ((noinline))
test_vneg_s32 ()
{
int32x2_t a;
/* { dg-final { scan-assembler-times "neg\\tv\[0-9\]+\.2s, v\[0-9\]+\.2s" 4 } } */
-int
+int __attribute__ ((noinline))
test_vneg_s64 ()
{
int64x1_t a;
return 0;
}
-int
+int __attribute__ ((noinline))
test_vnegd_s64 ()
{
int64_t a, b;
/* { dg-final { scan-assembler-times "neg\\td\[0-9\]+, d\[0-9\]+" 16 } } */
-int
+int __attribute__ ((noinline))
test_vnegq_s8 ()
{
int8x16_t a;
/* { dg-final { scan-assembler-times "neg\\tv\[0-9\]+\.16b, v\[0-9\]+\.16b" 1 } } */
-int
+int __attribute__ ((noinline))
test_vnegq_s16 ()
{
int16x8_t a;
/* { dg-final { scan-assembler-times "neg\\tv\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */
-int
+int __attribute__ ((noinline))
test_vnegq_s32 ()
{
int32x4_t a;
/* { dg-final { scan-assembler-times "neg\\tv\[0-9\]+\.4s, v\[0-9\]+\.4s" 2 } } */
-int
+int __attribute__ ((noinline))
test_vnegq_s64 ()
{
int64x2_t a;