1 /* { dg-do compile } 2 /* { dg-options "-msse2 -O2 -ftree-vectorize" } */ 3 /* { dg-final { scan-assembler "pavgb" } } */ 4 /* { dg-final { scan-assembler "pavgw" } } */ 5 6 #define N 1024 7 8 #define TEST(TYPE) \ 9 unsigned TYPE a_##TYPE[N], b_##TYPE[N], c_##TYPE[N]; \ 10 void f_##TYPE (void) \ 11 { \ 12 int i; \ 13 for (i = 0; i < N; i++) \ 14 a_##TYPE[i] = (b_##TYPE[i] + c_##TYPE[i] + 1) >> 1; \ 15 } 16 17 TEST(char); 18 TEST(short); 19