Commit 69e69c01 by Alan Lawrence Committed by Alan Lawrence

[Testsuite] Add tests of reductions using whole-vector-shifts (ior)

	* gcc.dg/vect/vect-reduc-or_1.c: New test.
	* gcc.dg/vect/vect-reduc-or_2.c: New test.

From-SVN: r215475
parent 2eac0853
2014-09-22 Alan Lawrence <alan.lawrence@arm.com> 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
* gcc.dg/vect/vect-reduc-or_1.c: New test.
* gcc.dg/vect/vect-reduc-or_2.c: Likewise.
2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
* lib/target-supports.exp (check_effective_target_whole_vector_shift): * lib/target-supports.exp (check_effective_target_whole_vector_shift):
New. New.
......
/* { dg-require-effective-target whole_vector_shift } */
/* Write a reduction loop to be reduced using vector shifts. */
extern void abort(void);
unsigned char in[16] __attribute__((__aligned__(16)));
int
main (unsigned char argc, char **argv)
{
unsigned char i = 0;
unsigned char sum = 1;
for (i = 0; i < 16; i++)
in[i] = (i + i + 1) & 0xfd;
/* Prevent constant propagation of the entire loop below. */
asm volatile ("" : : : "memory");
for (i = 0; i < 16; i++)
sum |= in[i];
if (sum != 29)
{
__builtin_printf("Failed %d\n", sum);
abort();
}
return 0;
}
/* { dg-final { scan-tree-dump "Reduce using vector shifts" "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
/* { dg-require-effective-target whole_vector_shift } */
/* Write a reduction loop to be reduced using vector shifts and folded. */
extern void abort(void);
int
main (unsigned char argc, char **argv)
{
unsigned char in[16] __attribute__((aligned(16)));
unsigned char i = 0;
unsigned char sum = 1;
for (i = 0; i < 16; i++)
in[i] = (i + i + 1) & 0xfd;
for (i = 0; i < 16; i++)
sum |= in[i];
if (sum != 29)
{
__builtin_printf("Failed %d\n", sum);
abort();
}
return 0;
}
/* { dg-final { scan-tree-dump "Reduce using vector shifts" "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment