Lines Matching +full:non +full:- +full:temporal
1 //==- AArch64SchedCortexA510.td - ARM Cortex-A510 Scheduling Definitions -*- tablegen -*-=//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This file defines the machine model for the ARM Cortex-A510 processor.
11 //===----------------------------------------------------------------------===//
13 // ===---------------------------------------------------------------------===//
14 // The following definitions describe the per-operand machine model.
17 // Cortex-A510 machine model for scheduling and other instruction cost heuristics.
19 let MicroOpBufferSize = 0; // The Cortex-A510 is an in-order processor
20 let IssueWidth = 3; // It dual-issues under most circumstances
25 let CompleteModel = 0; // Covers instructions applicable to Cortex-A510.
32 //===----------------------------------------------------------------------===//
33 // Subtarget-specific SchedWrite types
37 //===----------------------------------------------------------------------===//
41 // Cortex-A510 is in-order.
45 def CortexA510UnitMAC : ProcResource<1>; // Int MAC, 64-bi wide
54 // instructions, which can mostly be dual-issued; that's why for now we model
70 def : WriteRes<WriteISReg, [CortexA510UnitALU]> { let Latency = 2; } // ALU of Shifted-Reg
71 def : WriteRes<WriteIEReg, [CortexA510UnitALU]> { let Latency = 2; } // ALU of Extended-Reg
76 def : WriteRes<WriteIM32, [CortexA510UnitMAC]> { let Latency = 3; } // 32-bit Multiply
77 …WriteIM64, [CortexA510UnitMAC]> { let Latency = 5; let ReleaseAtCycles = [2];} // 64-bit Multiply
87 //===----------------------------------------------------------------------===//
90 //===----------------------------------------------------------------------===//
106 //===----------------------------------------------------------------------===//
107 // Define generic 2 micro-op types
144 // Pre/Post Indexing - Performed as part of address generation
155 // Vector Store - Similar to vector loads, can take 1-3 cycles to issue.
220 //===----------------------------------------------------------------------===//
221 // Subtarget-specific SchedRead types.
240 //===----------------------------------------------------------------------===//
241 // Subtarget-specific InstRWs.
250 // -----------------------------------------------------------------------------
271 //---
273 //---
283 //---
284 // Vector Loads - 128-bit per cycle
285 //---
286 // 1-element structures
309 // 2-element structures
320 // 3-element structures
331 // 4-element structures
332 …riteVLD2], (instregex "LD4i(8|16|32|64)$")>; // load single 4-el structure to one l…
333 …riteVLD2], (instregex "LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>; // load single 4-el structure, replica…
334 …teVLD4], (instregex "LD4Fourv(8b|4h|2s|1d)$")>; // load multiple 4-el structures to 4 re…
342 //---
344 //---
373 //---
375 //---
501 // -----------------------------------------------------------------------------
537 // -----------------------------------------------------------------------------
633 // -----------------------------------------------------------------------------
757 // Complex dot product 8-bit element
760 // Complex dot product 16-bit element
763 // Complex multiply-add B, H, S element size
767 // Complex multiply-add D element size
877 // Matrix multiply-accumulate
996 // SVE floating-point instructions
997 // -----------------------------------------------------------------------------
1154 // -----------------------------------------------------------------------------
1169 // -----------------------------------------------------------------------------
1199 // Non temporal load, scalar + imm
1202 // Non temporal load, scalar + scalar
1205 // Non temporal gather load, vector + scalar 32-bit element size
1209 // Non temporal gather load, vector + scalar 64-bit element size
1219 // Contiguous non faulting load, scalar + imm
1243 // Gather load, vector + imm, 32-bit element size
1247 // Gather load, vector + imm, 64-bit element size
1251 // Gather load, 64-bit element size
1258 // Gather load, 32-bit scaled offset
1263 // Gather load, 32-bit unpacked unscaled offset
1269 // -----------------------------------------------------------------------------
1316 // Non temporal store, scalar + imm
1319 // Non temporal store, scalar + scalar
1323 // Scatter non temporal store, vector + scalar 32-bit element size
1326 // Scatter non temporal store, vector + scalar 64-bit element size
1329 // Scatter store vector + imm 32-bit element size
1333 // Scatter store vector + imm 64-bit element size
1337 // Scatter store, 32-bit scaled offset
1341 // Scatter store, 32-bit unpacked unscaled offset
1345 // Scatter store, 32-bit unpacked scaled offset
1349 // Scatter store, 32-bit unscaled offset
1353 // Scatter store, 64-bit scaled offset
1357 // Scatter store, 64-bit unscaled offset
1362 // -----------------------------------------------------------------------------
1378 // -----------------------------------------------------------------------------