1 /* PR tree-optimization/109011 */
2 /* { dg-do compile } */
3 /* { dg-additional-options "-O3 -fno-unroll-loops --param=vect-epilogues-nomask=0 -fdump-tree-optimized" } */
4 /* { dg-additional-options "-mno-avx512cd -mbmi -mlzcnt -mavx512vpopcntdq" { target { { { { i?86-*-* x86_64-*-* } && avx512vpopcntdq } && lzcnt } && bmi } } } */
5 /* { dg-additional-options "-mdejagnu-cpu=power8" { target powerpc_vsx } } */
8 foo (long long *p
, long long *q
)
11 for (int i
= 0; i
< 2048; ++i
)
12 p
[i
] = 2 * q
[i
] + __builtin_ctzll (q
[i
]);
16 bar (long long *p
, long long *q
)
19 for (int i
= 0; i
< 2048; ++i
)
20 p
[i
] = q
[i
] ? __builtin_ctzll (q
[i
]) : __SIZEOF_LONG_LONG__
* __CHAR_BIT__
;
24 baz (long long *p
, long long *q
)
27 for (int i
= 0; i
< 2048; ++i
)
28 p
[i
] = __builtin_ffsll (q
[i
]);
31 /* { dg-final { scan-tree-dump-times " = \.POPCOUNT \\\(vect" 3 "optimized" { target { { { { i?86-*-* x86_64-*-* } && avx512vpopcntdq } && lzcnt } && bmi } } } } */
32 /* { dg-final { scan-tree-dump-times " = \.CLZ \\\(vect" 3 "optimized" { target powerpc_vsx } } } */