fcmpl : single-precision float comparison (-1 on NaN) : index : visitInsn()

Description
This takes two single-precision floating point numbers off the stack and compares them, using IEEE 754 rules.

If the two numbers are the same, the integer 0 is pushed onto the stack. If value2 is greater than value1, the integer 1 is pushed onto the stack. If value1 is greater than value2, the integer -1 is pushed onto the stack. If either number is NaN, the integer 1 is pushed onto the stack. +0.0 and -0.0 are treated as equal.
Example
fload_1       ; push the float in local variable 1
fconst_0      ; push the float 0 onto the stack
fcmpl         ; compare the two numbers
; The integer result on the stack is:
;     0 if local variable 1 equals 0
;     -1 if local variable 1 is less than 0
;     1 if local variable 1 is greater than 0
Notes
This instruction is identical to fcmpg except for the treatment of NaN.
See also
lcmp fcmpg dcmpl dcmpg
Stack
Before After
value1 result
value2 ...
... ...
Bytecode
Type Description
u1 fcmpl opcode = 0x95 (149)