blob: 193b945b41ad821da6d1112ffae79ca463b4a5e4 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O3 -fdump-rtl-final" } */
/* Tests div16qi. */
typedef unsigned char div16qi __attribute__ ((vector_size (16)));
/* Tests div8qi. */
typedef unsigned char div8qi __attribute__ ((vector_size (8)));
/* Tests div8hi. */
typedef unsigned short div8hi __attribute__ ((vector_size (16)));
/* Tests div4hi. */
typedef unsigned short div4hi __attribute__ ((vector_size (8)));
/* Tests siv16qi. */
typedef unsigned char siv16qi __attribute__ ((vector_size (16)));
/* Tests siv8qi. */
typedef unsigned char siv8qi __attribute__ ((vector_size (8)));
/* Tests siv8hi. */
typedef unsigned short siv8hi __attribute__ ((vector_size (16)));
/* Tests siv4hi. */
typedef unsigned short siv4hi __attribute__ ((vector_size (8)));
unsigned long long
foo_div16qi (div16qi a)
{
return a[0];
}
unsigned long long
foo_div8qi (div8qi a)
{
return a[0];
}
unsigned long long
foo_div8hi (div8hi a)
{
return a[0];
}
unsigned long long
foo_div4hi (div4hi a)
{
return a[0];
}
unsigned int
foo_siv16qi (siv16qi a)
{
return a[0];
}
unsigned int
foo_siv8qi (siv8qi a)
{
return a[0];
}
unsigned int
foo_siv8hi (siv8hi a)
{
return a[0];
}
unsigned int
foo_siv4hi (siv4hi a)
{
return a[0];
}
/* { dg-final { scan-assembler-times "umov\\t" 8 } } */
/* { dg-final { scan-assembler-not "and\\t" } } */