.macro IS_GR ARG .IF equal, %TYPE(ARG) & <MACRO64$TYPE_GENREG> .PRINT "ARG is not a general register" .ENDC .endm IS_GR IS_GR F11 Initially, the first line of the IS_GR macro expands as the following: .IF equal, <%TYPE(F11) & MACRO64$TYPE_GENREG> After lexical processing, the statement appears as: .IF equal, <8192 & MACRO64$TYPE_GENREG> In this example, 8192 is the attribute value for a floating- point register. This value could change in subsequent releases. Use only the predefined attribute masks described in %TYPE Attributes. Since the attribute for a general register MACRO64$TYPE_GENREG is 4096, the expression evaluates as 0. <8192 & MACRO64$TYPE_GENREG>