/* { dg-do run { target { power10_hw } } } */ /* { dg-do link { target { ! power10_hw } } } */ /* { dg-options "-mdejagnu-cpu=power10 -O2 -save-temps" } */ /* { dg-require-effective-target power10_ok } */ /* { dg-require-effective-target int128 } */ /* Check that the expected 128-bit instructions are generated if the processor supports the 128-bit integer instructions. */ /* { dg-final { scan-assembler-times {\mmtvsrbm\M} 1 } } */ /* { dg-final { scan-assembler-times {\mmtvsrhm\M} 1 } } */ /* { dg-final { scan-assembler-times {\mmtvsrwm\M} 1 } } */ /* { dg-final { scan-assembler-times {\mmtvsrdm\M} 1 } } */ /* { dg-final { scan-assembler-times {\mmtvsrqm\M} 1 } } */ /* { dg-final { scan-assembler-times {\mmtvsrbmi\M} 2 } } */ #define DEBUG 0 #if DEBUG #include #include #endif #include void abort (void); int main () { int i, num_elements; unsigned long long arg1; vector unsigned char vbc_result_bi, vbc_expected_result_bi; vector unsigned short vbc_result_hi, vbc_expected_result_hi; vector unsigned int vbc_result_wi, vbc_expected_result_wi; vector unsigned long long vbc_result_di, vbc_expected_result_di; vector __uint128_t vbc_result_qi, vbc_expected_result_qi; unsigned int result_wi, expected_result_wi; unsigned long long result, expected_result; const unsigned char mp=1; vector unsigned char vbc_bi_src; vector unsigned short vbc_hi_src; vector unsigned int vbc_wi_src; vector unsigned long long vbc_di_src; vector __uint128_t vbc_qi_src; /* mtvsrbmi */ num_elements = 16; for (i = 0; i