(old) | htmldiff from- | (new) |
Propagate break to next partition
If the last active element of the first source predicate is false then set the destination predicate to all-false. Otherwise leaves the destination and second source predicate unchanged. Does not set the condition flags.
If the last active element of the first source predicate is false then set the destination predicate to all-false. Otherwise leaves the destination and second source predicate unchanged. Optionally sets the First (N), None (Z), !Last (C) condition flags based on the predicate result, and the V flag to zero.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | Pg | 0 | Pn | 0 | Pdm | |||||||||
S |
if !HaveSVE() then UNDEFINED; integer g = UInt(Pg); integer n = UInt(Pn); integer dm = UInt(Pdm); boolean setflags = FALSE;
if !HaveSVE() then UNDEFINED;
integer g = UInt(Pg);
integer n = UInt(Pn);
integer dm = UInt(Pdm);
boolean setflags = TRUE;
<Pdm> | Is the name of the second source and destination scalable predicate register, encoded in the "Pdm" field. |
<Pg> | Is the name of the governing scalable predicate register, encoded in the "Pg" field. |
<Pn> | Is the name of the first source scalable predicate register, encoded in the "Pn" field. |
CheckSVEEnabled(); bits(PL) mask = P[g]; bits(PL) operand1 = P[n]; bits(PL) operand2 = P[dm]; bits(PL) result; if LastActive(mask, operand1, 8) == '1' then result = operand2; else result = Zeros(); if setflags then PSTATE.<N,Z,C,V> = PredTest(Ones(PL), result, 8); P[dm] = result;
Internal version only: isa v32.21v32.15, AdvSIMD v29.05, pseudocode v2021-06_xmlv2021-03, sve v2021-06_rc2bv2021-03_rc2
; Build timestamp: 2021-06-28T162021-03-30T21:4122
Copyright © 2010-2021 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.
(old) | htmldiff from- | (new) |