annotate gcc/testsuite/gcc.target/powerpc/pragma_power8.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 /* { dg-do compile } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 /* { dg-require-effective-target lp64 } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3 /* { dg-require-effective-target powerpc_p8vector_ok } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4 /* { dg-options "-mdejagnu-cpu=power6 -maltivec -O2" } */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 #include <altivec.h>
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8 #pragma GCC target ("cpu=power6,altivec")
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 #ifdef _ARCH_PWR6
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 vector int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 test1 (vector int a, vector int b)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 return vec_add (a, b);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 #else
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16 #error failed power6 pragma target
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 #endif
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 #pragma GCC target ("cpu=power7")
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20 /* Force a re-read of altivec.h with new cpu target. */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 #undef _ALTIVEC_H
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 #include <altivec.h>
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23 #ifdef _ARCH_PWR7
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 vector signed int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 test2 (vector signed int a, vector signed int b)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 return vec_sldw (a, b, 3);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 #else
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 #error failed to set power7 pragma target
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
31 #endif
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
32
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
33 #pragma GCC target ("cpu=power8")
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
34 /* Force a re-read of altivec.h with new cpu target. */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
35 #undef _ALTIVEC_H
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
36 #include <altivec.h>
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
37 #ifdef _ARCH_PWR8
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
38 vector int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
39 test3 (vector int a, vector int b)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
40 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
41 return vec_mergee (a, b);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
42 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
43 typedef __attribute__((altivec(vector__))) long vec_t;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
44 int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
45 test3b (vec_t a, vec_t b)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
46 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
47 return __builtin_vec_vcmpeq_p (2, a, b);
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
48 }
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
49 #else
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
50 #error failed to set power8 pragma target.
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
51 #endif
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
52