/* { dg-do compile } /* { dg-options "-msse2 -O2 -ftree-vectorize" } */ /* { dg-final { scan-assembler "pavgb" } } */ /* { dg-final { scan-assembler "pavgw" } } */ #define N 1024 #define TEST(TYPE) \ unsigned TYPE a_##TYPE[N], b_##TYPE[N], c_##TYPE[N]; \ void f_##TYPE (void) \ { \ int i; \ for (i = 0; i < N; i++) \ a_##TYPE[i] = (b_##TYPE[i] + c_##TYPE[i] + 1) >> 1; \ } TEST(char); TEST(short);