From fe60c01712c369e407b174f650515c86bba8c555 Mon Sep 17 00:00:00 2001 From: lkcl Date: Sun, 5 Sep 2021 14:51:38 +0100 Subject: [PATCH] --- openpower/sv/branches.mdwn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openpower/sv/branches.mdwn b/openpower/sv/branches.mdwn index ac478ebd5..0702f5cb0 100644 --- a/openpower/sv/branches.mdwn +++ b/openpower/sv/branches.mdwn @@ -38,13 +38,21 @@ 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. + +Unless Branches are aware and capable of such analysis, additional +instructions are 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 the Scalar Branch-Conditional can cope with. +Such instructions would be unavoidable, required, and costly +by comparison to a 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. Given that Power ISA v3.0B is already quite powerful, particularly the Condition Registers and their interaction with Branches, there -are opportunities to create an extremely flexible and compact +are opportunities to create extremely flexible and compact Vectorised Branch behaviour. In addition, the side-effects (updating of CTR, truncation of VL, described below) make it a useful instruction even if the branch points to the next instruction (no actual branch). -- 2.30.2