annotate gcc/testsuite/gcc.target/s390/zvector/vec-overloading-1.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Test whether overloading works as expected. */
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 /* { dg-do compile { target { s390*-*-* } } } */
kono
parents:
diff changeset
4 /* { dg-options "-march=z13 -mzarch -mzvector -fdump-tree-original" } */
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 __vector int var_v4si;
kono
parents:
diff changeset
7 __vector unsigned var_uv4si;
kono
parents:
diff changeset
8 __vector bool var_bv4si;
kono
parents:
diff changeset
9 __vector long long var_v2di;
kono
parents:
diff changeset
10 __vector unsigned long long var_uv2di;
kono
parents:
diff changeset
11 __vector bool long long var_bv2di;
kono
parents:
diff changeset
12 __vector double var_v2df;
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 int *intptr;
kono
parents:
diff changeset
15 unsigned *uintptr;
kono
parents:
diff changeset
16 double *dblptr;
kono
parents:
diff changeset
17 unsigned long long ull;
kono
parents:
diff changeset
18 const int *cintptr;
kono
parents:
diff changeset
19 long long* llptr;
kono
parents:
diff changeset
20 unsigned long long* ullptr;
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 typedef __vector int v4si;
kono
parents:
diff changeset
23 typedef __vector unsigned int uv4si;
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 v4si var2_v4si;
kono
parents:
diff changeset
26 uv4si var2_uv4si;
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 void
kono
parents:
diff changeset
29 foo ()
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 __builtin_s390_vec_scatter_element (var_v4si, var_uv4si, intptr, (unsigned long long)0);
kono
parents:
diff changeset
32 __builtin_s390_vec_scatter_element (var2_v4si, var2_uv4si, intptr, (unsigned long long)0);
kono
parents:
diff changeset
33 __builtin_s390_vec_scatter_element (var_bv4si, var_uv4si, uintptr, (unsigned long long)0);
kono
parents:
diff changeset
34 __builtin_s390_vec_scatter_element (var_uv4si, var_uv4si, uintptr, (unsigned long long)0);
kono
parents:
diff changeset
35 __builtin_s390_vec_scatter_element (var_v2di, var_uv2di, llptr, (unsigned long long)0);
kono
parents:
diff changeset
36 __builtin_s390_vec_scatter_element (var_bv2di, var_uv2di, ullptr, (unsigned long long)0);
kono
parents:
diff changeset
37 __builtin_s390_vec_scatter_element (var_uv2di, var_uv2di, ullptr, (unsigned long long)0);
kono
parents:
diff changeset
38 __builtin_s390_vec_scatter_element (var_v2df, var_uv2di, dblptr, (unsigned long long)0);
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 /* While the last argument is a int there is a way to convert it to
kono
parents:
diff changeset
41 unsigned long long, so this variant is supposed to match. */
kono
parents:
diff changeset
42 __builtin_s390_vec_scatter_element (var_v4si, var_uv4si, intptr, 0);
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 __builtin_s390_vec_insert_and_zero (intptr);
kono
parents:
diff changeset
45 __builtin_s390_vec_insert_and_zero (cintptr);
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 __builtin_s390_vec_promote ((signed char)1, 1);
kono
parents:
diff changeset
48 __builtin_s390_vec_promote ((unsigned char)1, 1);
kono
parents:
diff changeset
49 __builtin_s390_vec_promote ((short int)1, 1);
kono
parents:
diff changeset
50 __builtin_s390_vec_promote ((unsigned short int)1, 1);
kono
parents:
diff changeset
51 __builtin_s390_vec_promote ((int)1, 1);
kono
parents:
diff changeset
52 __builtin_s390_vec_promote ((unsigned)1, 1);
kono
parents:
diff changeset
53 __builtin_s390_vec_promote ((long long)1, 1);
kono
parents:
diff changeset
54 __builtin_s390_vec_promote ((unsigned long long)1, 1);
kono
parents:
diff changeset
55 __builtin_s390_vec_promote ((double)1, 1);
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 /* This is supposed to match vec_promote_s32 */
kono
parents:
diff changeset
58 __builtin_s390_vec_promote (1, (signed char) -1);
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 /* Constants in C usually are considered int. */
kono
parents:
diff changeset
61 __builtin_s390_vec_promote (1, 1);
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 /* And (unsigned) long if they are too big for int. */
kono
parents:
diff changeset
64 __builtin_s390_vec_promote (1ULL << 32, 1);
kono
parents:
diff changeset
65 __builtin_s390_vec_promote (1LL << 32, 1);
kono
parents:
diff changeset
66 }
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 /* { dg-final { scan-tree-dump-times "__builtin_s390_vscef " 5 "original" } } */
kono
parents:
diff changeset
69 /* { dg-final { scan-tree-dump-times "__builtin_s390_vsceg " 4 "original" } } */
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 /* { dg-final { scan-tree-dump-times "__builtin_s390_vllezf " 2 "original" } } */
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 /* { dg-final { scan-tree-dump-times "__builtin_s390_vlvgb_noin " 2 "original" } } */
kono
parents:
diff changeset
74 /* { dg-final { scan-tree-dump-times "__builtin_s390_vlvgh_noin " 2 "original" } } */
kono
parents:
diff changeset
75 /* { dg-final { scan-tree-dump-times "__builtin_s390_vlvgf_noin " 4 "original" } } */
kono
parents:
diff changeset
76 /* { dg-final { scan-tree-dump-times "__builtin_s390_vlvgg_noin " 4 "original" } } */
kono
parents:
diff changeset
77 /* { dg-final { scan-tree-dump-times "__builtin_s390_vlvgg_dbl_noin " 1 "original" } } */