davemgreen wrote: You might well be right if it is casting i32->f64. I hadn't looked at that bit of code, just the code that calls isConstantSplat. Are you able to create a double value that produces incorrect results? https://github.com/llvm/llvm-project/pull/107813