Semantics of NaN

Wow, thank you all for the discussion so far. Super helpful!

Let me just confirm one thing:

%a = fdiv float 0.0, 0.0
%b = fdiv float 0.0, 0.0
%ac = bitcast float %a to i32
%bc = bitcast float %b to i32
%cmp = icmp eq i32 %a, %bc

Is %cmp always true?
If so, what if we compare different instructions that produce NaN? Do we always get the same NaN bit pattern?