Ultimately, this code is checking if a single bit (the FCTRL flag) is turned on in the uop->flags variable.
But here's some explanation:
Implicitly, the code if(X) checks for X being a "true" value.
For integers, 0 is the only "false" value and everything else is "true".
Therefore your code is equivalent to:
if (0 != (uop->flags & FCTRL))
Now, what does that mean?
The & operator performs a "bitwise AND", which means each bit of the left-hand-side is ANDed with the corresponding bit on the right-hand-side.
So if we wrote out our two operands in binary:
uop->flags 1010 1010 (example)
FCTRL 0100 0000
In this example, if you perform an "AND" on each pair of bits, you get the result:
result 0000 0000
Which evaluates to false, and indeed in that example the uop->flags value does not have the FCTRL flag set.
Now here's another example, where the flag is set:
uop->flags 1110 1010 (example)
FCTRL 0100 0000
The corresponding ANDed result:
result 0100 0000
This result is non-zero, therefore "true", triggering your if statement.