| /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ |
| /* { dg-require-effective-target powerpc_p9vector_ok } */ |
| /* { dg-options "-mdejagnu-cpu=power9 -O2" } */ |
| |
| /* This file tests the extraction of 64-bit values. On Power 9, the direct |
| move is prefered for the 64-bit extract as it is either lower latency or |
| the same latency as the extract instruction depending on the Endianess of |
| the system. Furthermore, there can be up to four move instructions in |
| flight at a time versus only two extract intructions at a time. */ |
| |
| #include <altivec.h> |
| |
| unsigned long long |
| extract_bool_long_long_0 (vector bool long long a) |
| { |
| int c = 0; |
| unsigned long long b = vec_extract (a, c); |
| return b; |
| } |
| |
| unsigned long long int |
| extract_long_long_0 (vector unsigned long long int a) |
| { |
| int c = 0; |
| unsigned long long int b = vec_extract (a, c); |
| return b; |
| } |
| |
| /* { dg-final { scan-assembler-times "m\[ft\]vsr" 2 } } */ |