| /* { dg-do compile } */ |
| /* { dg-skip-if "" { powerpc*-*-darwin* } } */ |
| |
| void |
| use_cpu_is_builtins (unsigned int *p) |
| { |
| /* If GCC was configured to use an old GLIBC (before 2.23), the |
| __builtin_cpu_is and __builtin_cpu_supports built-in functions return 0, |
| and the compiler issues a warning that you need a newer glibc to use them. |
| Use #ifdef to avoid the warning. */ |
| #ifdef __BUILTIN_CPU_SUPPORTS__ |
| p[0] = __builtin_cpu_is ("power9"); |
| p[1] = __builtin_cpu_is ("power8"); |
| p[2] = __builtin_cpu_is ("power7"); |
| p[3] = __builtin_cpu_is ("power6x"); |
| p[4] = __builtin_cpu_is ("power6"); |
| p[5] = __builtin_cpu_is ("power5+"); |
| p[6] = __builtin_cpu_is ("power5"); |
| p[7] = __builtin_cpu_is ("ppc970"); |
| p[8] = __builtin_cpu_is ("power4"); |
| p[9] = __builtin_cpu_is ("ppca2"); |
| p[10] = __builtin_cpu_is ("ppc476"); |
| p[11] = __builtin_cpu_is ("ppc464"); |
| p[12] = __builtin_cpu_is ("ppc440"); |
| p[13] = __builtin_cpu_is ("ppc405"); |
| p[14] = __builtin_cpu_is ("ppc-cell-be"); |
| p[15] = __builtin_cpu_is ("power10"); |
| #else |
| p[0] = 0; |
| #endif |
| } |
| |
| void |
| use_cpu_supports_builtins (unsigned int *p) |
| { |
| #ifdef __BUILTIN_CPU_SUPPORTS__ |
| p[0] = __builtin_cpu_supports ("4xxmac"); |
| p[1] = __builtin_cpu_supports ("altivec"); |
| p[2] = __builtin_cpu_supports ("arch_2_05"); |
| p[3] = __builtin_cpu_supports ("arch_2_06"); |
| p[4] = __builtin_cpu_supports ("arch_2_07"); |
| p[5] = __builtin_cpu_supports ("arch_3_00"); |
| p[6] = __builtin_cpu_supports ("archpmu"); |
| p[7] = __builtin_cpu_supports ("booke"); |
| p[8] = __builtin_cpu_supports ("cellbe"); |
| p[9] = __builtin_cpu_supports ("dfp"); |
| p[10] = __builtin_cpu_supports ("dscr"); |
| p[11] = __builtin_cpu_supports ("ebb"); |
| p[12] = __builtin_cpu_supports ("efpdouble"); |
| p[13] = __builtin_cpu_supports ("efpsingle"); |
| p[14] = __builtin_cpu_supports ("fpu"); |
| p[15] = __builtin_cpu_supports ("htm"); |
| p[16] = __builtin_cpu_supports ("htm-nosc"); |
| p[17] = __builtin_cpu_supports ("ic_snoop"); |
| p[18] = __builtin_cpu_supports ("ieee128"); |
| p[19] = __builtin_cpu_supports ("isel"); |
| p[20] = __builtin_cpu_supports ("mmu"); |
| p[21] = __builtin_cpu_supports ("notb"); |
| p[22] = __builtin_cpu_supports ("pa6t"); |
| p[23] = __builtin_cpu_supports ("power4"); |
| p[24] = __builtin_cpu_supports ("power5"); |
| p[25] = __builtin_cpu_supports ("power5+"); |
| p[26] = __builtin_cpu_supports ("power6x"); |
| p[27] = __builtin_cpu_supports ("ppc32"); |
| p[28] = __builtin_cpu_supports ("ppc601"); |
| p[29] = __builtin_cpu_supports ("ppc64"); |
| p[30] = __builtin_cpu_supports ("ppcle"); |
| p[31] = __builtin_cpu_supports ("smt"); |
| p[32] = __builtin_cpu_supports ("spe"); |
| p[33] = __builtin_cpu_supports ("tar"); |
| p[34] = __builtin_cpu_supports ("true_le"); |
| p[35] = __builtin_cpu_supports ("ucache"); |
| p[36] = __builtin_cpu_supports ("vcrypto"); |
| p[37] = __builtin_cpu_supports ("vsx"); |
| p[38] = __builtin_cpu_supports ("darn"); |
| p[39] = __builtin_cpu_supports ("scv"); |
| p[40] = __builtin_cpu_supports ("htm-no-suspend"); |
| p[41] = __builtin_cpu_supports ("arch_3_1"); |
| p[42] = __builtin_cpu_supports ("mma"); |
| #else |
| p[0] = 0; |
| #endif |
| } |