← Home

PTEST

Set condition flags for predicate

Sets the First (N), None (Z), !Last (C) condition flags based on the predicate source register, and the V flag to zero.

SVE

(FEAT_SVE || FEAT_SME)

313029282726252423222120191817161514131211109876543210
001001010101000011Pg0Pn00000
opSopc2

Encoding

PTEST <Pg>, <Pn>.B

Decode for this encoding

if !IsFeatureImplemented(FEAT_SVE) && !IsFeatureImplemented(FEAT_SME) then EndOfDecode(Decode_UNDEF); constant integer esize = 8; constant integer g = UInt(Pg); constant integer n = UInt(Pn);

Assembler Symbols

<Pg>

Is the name of the governing scalable predicate register, encoded in the "Pg" field.

<Pn>

Is the name of the source scalable predicate register, encoded in the "Pn" field.

Operation

CheckSVEEnabled(); constant integer VL = CurrentVL; constant integer PL = VL DIV 8; constant bits(PL) mask = P[g, PL]; constant bits(PL) result = P[n, PL]; PSTATE.<N,Z,C,V> = PredTest(mask, result, esize);