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?