     .rn .rz .rm .rp .approx .full ;
 VARIANT: ptx-int-rounding-mode
     .rni .rzi .rmi .rpi ;
-UNION: ?ptx-float-rounding-mode ptx-float-rounding-mode POSTPONE: f ;
-UNION: ?ptx-int-rounding-mode ptx-int-rounding-mode POSTPONE: f ;
+UNION: ?ptx-float-rounding-mode POSTPONE: f ptx-float-rounding-mode ;
+UNION: ?ptx-int-rounding-mode POSTPONE: f ptx-int-rounding-mode ;
 
 UNION: ptx-rounding-mode
     ptx-float-rounding-mode ptx-int-rounding-mode ;
-UNION: ?ptx-rounding-mode ptx-rounding-mode POSTPONE: f ;
+UNION: ?ptx-rounding-mode POSTPONE: f ptx-rounding-mode ;
 
 TUPLE: ptx-typed-instruction < ptx-instruction
     { type ptx-type }

    .param
    .shared
    .tex ;
UNION: ?ptx-storage-space ptx-storage-space POSTPONE: f ;

TUPLE: ptx-target
    { arch ?ptx-arch }

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
