/* Test the least significant bit by byte instruction xvtlsbb BF,XB Using the builtins int vec_test_lsbb_all_zeros (vector unsigned char); int vec_test_lsbb_all_ones (vector unsigned char); */ /* { dg-do run { target { power10_hw } } } */ /* { dg-do link { target { ! power10_hw } } } */ /* { dg-require-effective-target power10_ok } */ /* { dg-options "-fno-inline -mdejagnu-cpu=power10 -O2" } */ #include #include void abort (void); #define ITERS 7 vector char input_vec[ITERS] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, {0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe}, {0xfe, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9} }; int expected_allzeros_results[ITERS] = {1, 0, 0, 0, 0, 1, 0}; int expected_allones_results[ITERS] = {0, 1, 0, 0, 1, 0, 0}; int test_for_zeros(vector char vc) { return vec_test_lsbb_all_zeros(vc); } int test_for_ones(vector char vc) { return vec_test_lsbb_all_ones(vc); } int main () { int allzeros,allones; int iter; int failcount=0; vector char srcvec; for (iter=0;iter