Skip to content

Commit 41c86ca

Browse files
[RISCV] Add TT-Ascalon-d8 processor (#115100)
Ascalon is an out-of-order CPU core from Tenstorrent. Overview: https://tenstorrent.com/ip/tt-ascalon Adding 8-wide version, -mcpu=tt-ascalon-d8. Scheduling model will be added in a separate PR. --------- Co-authored-by: Anton Blanchard <antonb@tenstorrent.com>
1 parent 4d7df40 commit 41c86ca

File tree

4 files changed

+87
-0
lines changed

4 files changed

+87
-0
lines changed

clang/test/Driver/riscv-cpus.c

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,68 @@
104104
// RUN: %clang --target=riscv32 -### -c %s 2>&1 -mtune=syntacore-scr1-max | FileCheck -check-prefix=MTUNE-SYNTACORE-SCR1-MAX %s
105105
// MTUNE-SYNTACORE-SCR1-MAX: "-tune-cpu" "syntacore-scr1-max"
106106

107+
// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mtune=tt-ascalon-d8 | FileCheck -check-prefix=MTUNE-TT-ASCALON-D8 %s
108+
// MTUNE-TT-ASCALON-D8: "-tune-cpu" "tt-ascalon-d8"
109+
110+
// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=tt-ascalon-d8 | FileCheck -check-prefix=MCPU-TT-ASCALON-D8 %s
111+
// MCPU-TT-ASCALON-D8: "-target-cpu" "tt-ascalon-d8"
112+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+m"
113+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+a"
114+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+f"
115+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+d"
116+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+c"
117+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+v"
118+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+h"
119+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicbom"
120+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicbop"
121+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicboz"
122+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicntr"
123+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicond"
124+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zicsr"
125+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zifencei"
126+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zihintntl"
127+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zihintpause"
128+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zihpm"
129+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zimop"
130+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zmmul"
131+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zawrs"
132+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfa"
133+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfbfmin"
134+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfh"
135+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zfhmin"
136+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zca"
137+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zcb"
138+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zba"
139+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zbb"
140+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zbs"
141+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zkt"
142+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvbb"
143+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvbc"
144+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve32f"
145+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve32x"
146+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve64d"
147+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve64f"
148+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zve64x"
149+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfbfmin"
150+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfbfwma"
151+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfh"
152+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvfhmin"
153+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkb"
154+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkg"
155+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkn"
156+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvknc"
157+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkned"
158+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkng"
159+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvknhb"
160+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvkt"
161+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl128b"
162+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl256b"
163+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl32b"
164+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+zvl64b"
165+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+svinval"
166+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+svnapot"
167+
// MCPU-TT-ASCALON-D8-SAME: "-target-feature" "+svpbmt"
168+
107169
// RUN: %clang --target=riscv64 -### -c %s 2>&1 -mcpu=veyron-v1 | FileCheck -check-prefix=MCPU-VEYRON-V1 %s
108170
// MCPU-VEYRON-V1: "-target-cpu" "veyron-v1"
109171
// MCPU-VEYRON-V1: "-target-feature" "+m"

clang/test/Misc/target-invalid-cpu-note/riscv.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
// RISCV64-SAME: {{^}}, syntacore-scr4-rv64
4242
// RISCV64-SAME: {{^}}, syntacore-scr5-rv64
4343
// RISCV64-SAME: {{^}}, syntacore-scr7
44+
// RISCV64-SAME: {{^}}, tt-ascalon-d8
4445
// RISCV64-SAME: {{^}}, veyron-v1
4546
// RISCV64-SAME: {{^}}, xiangshan-nanhu
4647
// RISCV64-SAME: {{$}}
@@ -87,6 +88,7 @@
8788
// TUNE-RISCV64-SAME: {{^}}, syntacore-scr4-rv64
8889
// TUNE-RISCV64-SAME: {{^}}, syntacore-scr5-rv64
8990
// TUNE-RISCV64-SAME: {{^}}, syntacore-scr7
91+
// TUNE-RISCV64-SAME: {{^}}, tt-ascalon-d8
9092
// TUNE-RISCV64-SAME: {{^}}, veyron-v1
9193
// TUNE-RISCV64-SAME: {{^}}, xiangshan-nanhu
9294
// TUNE-RISCV64-SAME: {{^}}, generic

llvm/docs/ReleaseNotes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ Changes to the RISC-V Backend
190190
* The `Zvbc32e` and `Zvkgs` extensions are now supported experimentally.
191191
* Added `Smctr`, `Ssctr` and `Svvptc` extensions.
192192
* `-mcpu=syntacore-scr7` was added.
193+
* `-mcpu=tt-ascalon-d8` was added.
193194
* The `Zacas` extension is no longer marked as experimental.
194195
* Added Smdbltrp, Ssdbltrp extensions to -march.
195196
* The `Smmpm`, `Smnpm`, `Ssnpm`, `Supm`, and `Sspm` pointer masking extensions

llvm/lib/Target/RISCV/RISCVProcessors.td

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,28 @@ def SYNTACORE_SCR7 : RISCVProcessorModel<"syntacore-scr7",
407407
FeatureStdExtZkn],
408408
[TuneNoDefaultUnroll, FeaturePostRAScheduler]>;
409409

410+
def TENSTORRENT_ASCALON_D8 : RISCVProcessorModel<"tt-ascalon-d8",
411+
NoSchedModel,
412+
!listconcat(RVA23S64Features,
413+
[FeatureStdExtSmaia,
414+
FeatureStdExtSsaia,
415+
FeatureStdExtSscofpmf,
416+
FeatureStdExtSsstrict,
417+
FeatureStdExtZfbfmin,
418+
FeatureStdExtZfh,
419+
FeatureStdExtZicsr,
420+
FeatureStdExtZvbc,
421+
FeatureStdExtZvfbfmin,
422+
FeatureStdExtZvfbfwma,
423+
FeatureStdExtZvfh,
424+
FeatureStdExtZvkng,
425+
FeatureStdExtZvl256b,
426+
FeatureUnalignedScalarMem,
427+
FeatureUnalignedVectorMem]),
428+
[TuneNoDefaultUnroll,
429+
TuneOptimizedZeroStrideLoad,
430+
FeaturePostRAScheduler]>;
431+
410432
def VENTANA_VEYRON_V1 : RISCVProcessorModel<"veyron-v1",
411433
NoSchedModel,
412434
[Feature64Bit,

0 commit comments

Comments
 (0)