 TUPLE: ptx-predicate
     { negated? boolean }
     { variable string } ; 
-UNION: ?ptx-predicate ptx-predicate POSTPONE: f ;
+UNION: ?ptx-predicate POSTPONE: f ptx-predicate ;
 
 TUPLE: ptx-instruction
     { label ?string }

VARIANT: ptx-op
    .and .or .xor .cas .exch .add .inc .dec .min .max
    .popc ;

SINGLETONS: .lo .hi ;
INSTANCE: .lo ptx-mul-mode

M: setp (write-ptx-element)
    "setp" write-insn
    dup write-set
    dup type>> (write-ptx-element) " " write
    dup dest>> write
    dup |dest>> [ "|" write write ] when* ", " write
    dup a>> write ", " write
    dup b>> write
    c>> [ ", " write write ] when* ;
M: shl (write-ptx-element)
    "shl" write-insn
