passes: Print a header in emergency_dump_function
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / pr80099-2.c
blob5800db6321208de75fe3fd40ddf1d98d067e27d0
1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-require-effective-target powerpc_p8vector_ok } */
3 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
4 /* { dg-options "-mcpu=power8 -O2 -mno-upper-regs-sf" } */
6 /* PR target/80099 was an issue with -mno-upper-regs-sf. Test for all variable
7 extract types with various -mno-upper-regs-* options. */
9 double
10 d_extract_arg_n (vector double v, unsigned long n)
12 return __builtin_vec_extract (v, n);
15 float
16 f_extract_arg_n (vector float v, unsigned long n)
18 return __builtin_vec_extract (v, n);
21 long
22 sl_extract_arg_n (vector long v, unsigned long n)
24 return (long) __builtin_vec_extract (v, n);
27 unsigned long
28 ul_extract_arg_n (vector unsigned long v, unsigned long n)
30 return (unsigned long) __builtin_vec_extract (v, n);
33 long
34 si_extract_arg_n (vector int v, unsigned long n)
36 return (int) __builtin_vec_extract (v, n);
39 unsigned long
40 ui_extract_arg_n (vector unsigned int v, unsigned long n)
42 return (unsigned int) __builtin_vec_extract (v, n);
45 long
46 ss_extract_arg_n (vector short v, unsigned long n)
48 return (short) __builtin_vec_extract (v, n);
51 unsigned long
52 us_extract_arg_n (vector unsigned short v, unsigned long n)
54 return (unsigned short) __builtin_vec_extract (v, n);
57 long
58 sc_extract_arg_n (vector signed char v, unsigned long n)
60 return (signed char) __builtin_vec_extract (v, n);
63 unsigned long
64 uc_extract_arg_n (vector unsigned char v, unsigned long n)
66 return (unsigned char) __builtin_vec_extract (v, n);
70 double
71 d_extract_mem_n (vector double *p, unsigned long n)
73 return __builtin_vec_extract (*p, n);
76 float
77 f_extract_mem_n (vector float *p, unsigned long n)
79 return __builtin_vec_extract (*p, n);
82 long
83 sl_extract_mem_n (vector long *p, unsigned long n)
85 return (long) __builtin_vec_extract (*p, n);
88 unsigned long
89 ul_extract_mem_n (vector unsigned long *p, unsigned long n)
91 return (unsigned long) __builtin_vec_extract (*p, n);
94 long
95 si_extract_mem_n (vector int *p, unsigned long n)
97 return (int) __builtin_vec_extract (*p, n);
100 unsigned long
101 ui_extract_mem_n (vector unsigned int *p, unsigned long n)
103 return (unsigned int) __builtin_vec_extract (*p, n);
106 long
107 ss_extract_mem_n (vector short *p, unsigned long n)
109 return (short) __builtin_vec_extract (*p, n);
112 unsigned long
113 us_extract_mem_n (vector unsigned short *p, unsigned long n)
115 return (unsigned short) __builtin_vec_extract (*p, n);
118 long
119 sc_extract_mem_n (vector signed char *p, unsigned long n)
121 return (signed char) __builtin_vec_extract (*p, n);
124 unsigned long
125 uc_extract_mem_n (vector unsigned char *p, unsigned long n)
127 return (unsigned char) __builtin_vec_extract (*p, n);