Difference between revisions of "Instruction Set/innerfl"
From Mill Computing Wiki
Line 1: | Line 1: | ||
{{DISPLAYTITLE:innerfl}} | {{DISPLAYTITLE:innerfl}} | ||
− | <div style="font-size:80%;line-height:90%;margin-bottom:2em">[[Speculation|realizing]] [[Encoding|flow stream]] [[Decode|flow block]] [[Phasing| | + | <div style="font-size:80%;line-height:90%;margin-bottom:2em">[[Speculation|realizing]] [[Encoding|flow stream]] [[Decode|flow block]] [[Phasing|transfer phase]] operation <br /> |
'''native on:''' [[Cores|all]]<br /> | '''native on:''' [[Cores|all]]<br /> | ||
</div> | </div> | ||
Line 11: | Line 11: | ||
---- | ---- | ||
− | <code style="font-size:130%"><b style="color:#050">innerfl</b>(<span style="color:#009">[[Domains# | + | <code style="font-size:130%"><b style="color:#050">innerfl</b>(<span style="color:#009">[[Domains#pred|pred]]</span> <span title="late-evaluated 1-bit predicate from belt">op0</span>, <i><span style="color:#009">[[Immediates#lbl|lbl]]</span> <span title="name of label or function">off0</span></i>, <span style="color:#009">[[Domains#ops|ops]]</span> <span title="one or more |
− | + | return arguments">args</span>)</code> | |
<div style="font-size:80%;line-height:90%;margin-bottom:2em">'''operands:''' [[Operands#likeInv|like Inv :]] | <div style="font-size:80%;line-height:90%;margin-bottom:2em">'''operands:''' [[Operands#likeInv|like Inv :]] | ||
</div> | </div> | ||
Line 18: | Line 18: | ||
'''encoding:''' | '''encoding:''' | ||
− | <code style="font-size:100%"><b style="color:#050">innerfl</b>(<span style="color:#009">[[Domains# | + | <code style="font-size:100%"><b style="color:#050">innerfl</b>(<span style="color:#009">[[Domains#pred|pred]]</span> <span title="late-evaluated 1-bit predicate from belt">count0</span>, <i><span style="color:#009">[[Immediates#off|off]]</span> <span title="manifest constant">op0</span></i>, <i><span style="color:#009">[[Immediates#count|count]]</span> <span title="morsel-sized count of |
− | + | polyadic args">off0</span></i>)</code> | |
+ | , | ||
+ | <code style="font-size:100%"><b style="color:#050">innerfl</b>(<span style="color:#009">[[Domains#pred|pred]]</span> <span title="late-evaluated 1-bit predicate from belt">count0</span>, <i><span style="color:#009">[[Immediates#off|off]]</span> <span title="manifest constant">op0</span></i>, <i><span style="color:#009">[[Immediates#count|count]]</span> <span title="morsel-sized count of | ||
+ | polyadic args">lit0</span></i>, <i><span style="color:#009">[[Immediates#lit|lit]]</span> <span title="morsel-sized manifest constant">off0</span></i>)</code> | ||
+ | , | ||
+ | <code style="font-size:100%"><b style="color:#050">innerfl</b>(<span style="color:#009">[[Domains#pred|pred]]</span> <span title="late-evaluated 1-bit predicate from belt">count0</span>, <i><span style="color:#009">[[Immediates#off|off]]</span> <span title="manifest constant">op0</span></i>, <i><span style="color:#009">[[Immediates#count|count]]</span> <span title="morsel-sized count of | ||
+ | polyadic args">lit0</span></i>, <i><span style="color:#009">[[Immediates#lit|lit]]</span> <span title="morsel-sized manifest constant">lit1</span></i>, <i><span style="color:#009">[[Immediates#lit|lit]]</span> <span title="morsel-sized manifest constant">off0</span></i>)</code> | ||
<br /> | <br /> | ||
− | |||
{| class="mw-collapsible mw-collapsed wikitable" data-expandtext="▸" data-collapsetext="▾" | {| class="mw-collapsible mw-collapsed wikitable" data-expandtext="▸" data-collapsetext="▾" | ||
Line 28: | Line 33: | ||
| [[Cores/Tin/Encoding#innerfl|Tin]] || F0 || 1 | | [[Cores/Tin/Encoding#innerfl|Tin]] || F0 || 1 | ||
|- | |- | ||
− | | [[Cores/Copper/Encoding#innerfl|Copper]] || F0 | + | | [[Cores/Copper/Encoding#innerfl|Copper]] || F0 || 1 |
|- | |- | ||
| [[Cores/Silver/Encoding#innerfl|Silver]] || F0 F1 F2 || 1 | | [[Cores/Silver/Encoding#innerfl|Silver]] || F0 F1 F2 || 1 | ||
|- | |- | ||
− | | [[Cores/Gold/Encoding#innerfl|Gold]] || F0 | + | | [[Cores/Gold/Encoding#innerfl|Gold]] || F0 || 1 |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|} | |} | ||
[[Instruction_Set|Instruction Set, alphabetical]], [[Instruction Set by Category]], [http://millcomputing.com/instructions.html?collapse=7#ops Instruction Set, sortable, filterable] | [[Instruction_Set|Instruction Set, alphabetical]], [[Instruction Set by Category]], [http://millcomputing.com/instructions.html?collapse=7#ops Instruction Set, sortable, filterable] |
Latest revision as of 14:01, 23 February 2021
Predicated loop on false condition.
Everything that applies to inner applies also here. The difference is the predicate to make it a conditional inner. And there is one less possible argument in all the encodings.
related operations: inner, innertr
innerfl(pred op0, lbl off0, ops args)
operands: like Inv :
encoding:
innerfl(pred count0, off op0, count off0)
,
innerfl(pred count0, off op0, count lit0, lit off0)
,
innerfl(pred count0, off op0, count lit0, lit lit1, lit off0)
Core | In Slots | Latencies |
---|---|---|
Tin | F0 | 1 |
Copper | F0 | 1 |
Silver | F0 F1 F2 | 1 |
Gold | F0 | 1 |
Instruction Set, alphabetical, Instruction Set by Category, Instruction Set, sortable, filterable