From: lkcl Date: Sun, 5 Sep 2021 20:39:35 +0000 (+0100) Subject: (no commit message) X-Git-Tag: DRAFT_SVP64_0_1~212 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=888075a797f28fca173ee03607f66c08b9ab84c4;p=libreriscv.git --- diff --git a/openpower/sv/branches.mdwn b/openpower/sv/branches.mdwn index 285f78169..88f3626f2 100644 --- a/openpower/sv/branches.mdwn +++ b/openpower/sv/branches.mdwn @@ -33,19 +33,17 @@ and a fundamental part of Shader Compilers. Example: without such multi-condition test-and-branch, if a predicate mask is all zeros a large batch of instructions may be masked out to `nop`, and it would waste -CPU cycles not only to run them but also to load the predicate -mask repeatedly for each one. 3D GPU ISAs can test for this scenario -and jump over the fully-masked-out operations, by spotting that -*all* Conditions are false. Or, conversely, they only call the function if at least -one Condition is set. +CPU cycles to run them. 3D GPU ISAs can test for this scenario +and jump over fully-masked-out operations, by spotting that +*all* Conditions are false. Unless Branches are aware and capable of such analysis, additional -instructions are required which perform Horizontal Cumulative +instructions would be required which perform Horizontal Cumulative analysis of Vectorised Condition Register Fields, in order to reduce the Vector of CR Fields down to one single yes or no decision that a Scalar-only v3.0B Branch-Conditional could cope with. Such instructions would be unavoidable, required, and costly -by comparison to a Vector-aware Branch. +by comparison to a single Vector-aware Branch. Therefore, in order to be commercially competitive, `sv.bc` and other Vector-aware Branch Conditional instructions are a high priority for 3D GPU workloads.