Mutex Form of the .pred.rel Annotation

Format: .pred.rel “mutex” p1, p2 [,&ldots;]

where

p1, p2 ... are predicate registers

.pred.rel “mutex” informs the assembler that only one of the specified predicate registers is true, or all are false. For example:

.pred.rel “mutex”, p1, p2, p3
; p1, p2, and p3 are mutually exclusive or all zero
(p1)add r5 = 8, r6
(p2)add r5 = r7, r0
(p3)add r5 = r14, r0

The mutex form is unordered, meaning that the order in which the predicates appear is not important.

The mutex form does not override predefined mutex relations between the destination predicate registers and other predicate registers. For example:

.pred.rel “mutex”,p1,p2
.pred.rel “mutex”,p1,p3
.pred.rel “mutex”,p2,p3
; p1,p2 and p3 are mutex
(p1)mov r4=r5
(p2)mov r4=r6
(p3)mov r4=r7 // no WAW error is reported