 M: setp (write-ptx-element)
     "setp" write-insn
     dup write-set
-    dup write-3op
+    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

IN: cuda.ptx

UNION: dim integer sequence ;
UNION: ?integer integer POSTPONE: f ;
UNION: ?string string POSTPONE: f ;

VARIANT: ptx-type
    .s8 .s16 .s32 .s64

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

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