Commit 41b504e9 by Peter Bergner

rs6000: Add support for __builtin_cpu_is ("power10")

Add support for __builtin_cpu_is ("power10").  Also add documentation for
the recently added "arch_3_1" and "mma" __builtin_cpu_supports arguments.

2020-06-25  Peter Bergner  <bergner@linux.ibm.com>

gcc/
	* config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New.
	* doc/extend.texi (PowerPC Built-in Functions): Document power10,
	arch_3_1 and mma.

gcc/testsuite/
	* gcc.target/powerpc/cpu-builtin-1.c: Add tests for power10, arch_3_1
	and mma.

(cherry picked from commit 67161d24f45601e43abea98f2c3d7d7a462b6eab)
parent 7549286a
...@@ -105,6 +105,7 @@ static const struct ...@@ -105,6 +105,7 @@ static const struct
const char *cpu; const char *cpu;
unsigned int cpuid; unsigned int cpuid;
} cpu_is_info[] = { } cpu_is_info[] = {
{ "power10", PPC_PLATFORM_POWER10 },
{ "power9", PPC_PLATFORM_POWER9 }, { "power9", PPC_PLATFORM_POWER9 },
{ "power8", PPC_PLATFORM_POWER8 }, { "power8", PPC_PLATFORM_POWER8 },
{ "power7", PPC_PLATFORM_POWER7 }, { "power7", PPC_PLATFORM_POWER7 },
......
...@@ -17018,6 +17018,8 @@ issues a warning. ...@@ -17018,6 +17018,8 @@ issues a warning.
The following CPU names can be detected: The following CPU names can be detected:
@table @samp @table @samp
@item power10
IBM POWER10 Server CPU.
@item power9 @item power9
IBM POWER9 Server CPU. IBM POWER9 Server CPU.
@item power8 @item power8
...@@ -17094,6 +17096,8 @@ CPU supports ISA 2.06 (eg, POWER7) ...@@ -17094,6 +17096,8 @@ CPU supports ISA 2.06 (eg, POWER7)
CPU supports ISA 2.07 (eg, POWER8) CPU supports ISA 2.07 (eg, POWER8)
@item arch_3_00 @item arch_3_00
CPU supports ISA 3.0 (eg, POWER9) CPU supports ISA 3.0 (eg, POWER9)
@item arch_3_1
CPU supports ISA 3.1 (eg, POWER10)
@item archpmu @item archpmu
CPU supports the set of compatible performance monitoring events. CPU supports the set of compatible performance monitoring events.
@item booke @item booke
...@@ -17127,6 +17131,8 @@ CPU supports icache snooping capabilities. ...@@ -17127,6 +17131,8 @@ CPU supports icache snooping capabilities.
CPU supports 128-bit IEEE binary floating point instructions. CPU supports 128-bit IEEE binary floating point instructions.
@item isel @item isel
CPU supports the integer select instruction. CPU supports the integer select instruction.
@item mma
CPU supports the matrix-multiply assist instructions.
@item mmu @item mmu
CPU has a memory management unit. CPU has a memory management unit.
@item notb @item notb
......
...@@ -24,6 +24,7 @@ use_cpu_is_builtins (unsigned int *p) ...@@ -24,6 +24,7 @@ use_cpu_is_builtins (unsigned int *p)
p[12] = __builtin_cpu_is ("ppc440"); p[12] = __builtin_cpu_is ("ppc440");
p[13] = __builtin_cpu_is ("ppc405"); p[13] = __builtin_cpu_is ("ppc405");
p[14] = __builtin_cpu_is ("ppc-cell-be"); p[14] = __builtin_cpu_is ("ppc-cell-be");
p[15] = __builtin_cpu_is ("power10");
#else #else
p[0] = 0; p[0] = 0;
#endif #endif
...@@ -74,6 +75,8 @@ use_cpu_supports_builtins (unsigned int *p) ...@@ -74,6 +75,8 @@ use_cpu_supports_builtins (unsigned int *p)
p[38] = __builtin_cpu_supports ("darn"); p[38] = __builtin_cpu_supports ("darn");
p[39] = __builtin_cpu_supports ("scv"); p[39] = __builtin_cpu_supports ("scv");
p[40] = __builtin_cpu_supports ("htm-no-suspend"); p[40] = __builtin_cpu_supports ("htm-no-suspend");
p[41] = __builtin_cpu_supports ("arch_3_1");
p[42] = __builtin_cpu_supports ("mma");
#else #else
p[0] = 0; p[0] = 0;
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment