From aa7541914e246d1196ef6dcb53b9b745f1c242fd Mon Sep 17 00:00:00 2001 From: lkcl Date: Sun, 20 Dec 2020 19:50:10 +0000 Subject: [PATCH] --- openpower/sv/svp_rewrite/svp64.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/openpower/sv/svp_rewrite/svp64.mdwn b/openpower/sv/svp_rewrite/svp64.mdwn index 9743e6d88..225e03b97 100644 --- a/openpower/sv/svp_rewrite/svp64.mdwn +++ b/openpower/sv/svp_rewrite/svp64.mdwn @@ -269,6 +269,14 @@ Pseudocode for the case where RA==RB: TODO: case where RA!=RB which involves first a vector of 2-operand results followed by a mapreduce on the intermediates. +Note that when SUBVL!=1, the sub-elements are *independent*, i.e. they are mapreduced per *sub-element* as a result. illustration with a vec2: + + result.x = op(iregs[RA].x, iregs[RA+1].x) + result.y = op(iregs[RA].y, iregs[RA+1].y) + for i in range(2, VL): + result.x = op(result.x, iregs[RA+i].x) + result.y = op(result.y, iregs[RA+i].y) + ## Fail-on-first Data-dependent fail-on-first has two distinct variants: one for LD/ST, the other for arithmetic operations (actually, CR-driven). Note in each case the assumption is that vector elements are required appear to be executed in sequential Program Order, element 0 being the first. -- 2.30.2