IF macro option C
Option C needs all four parameters.
Any compare instruction is valid. However, with a compare instruction, the condition mnemonic appears between parm1 and parm2, instead of after both of them as in option B.
In all cases, parm1 and parm2 must agree, as if you were writing the instruction in assembler language.
IF (CLI,0(2),EQ,X'40') THEN
Code for F1
ELSE
Code for F2
ENDIF
produces:
IF (CLI,0(2),EQ,X'40') THEN
CLI 0(2),X'40'
BC 15-8,#@LB1
Code for F1
ELSE
BC 15,#@LB3
#@LB1 DC 0H
Code for F2
ENDIF
#@LB3 DC 0H
IF (CLM,R1,M3,NE,B2(D2))
Combined compare and branch instructions (such as CRB and CIJ) can be used if the program will be executed only on hardware that supports them (IBM z10 and above). In that case the branch address operand should be omitted, as it will be filled in automatically by the macros.
In all option C formats, the instruction is coded first, followed by the appropriate operands in the same order as used in open code, with the condition code mask operand in the next to last position.