@craig.topper brought up the question -- do we want to call UnaryOperator::CreateFNeg(...) or BinaryOperator::CreateFNeg(...) here. My current thinking is that we want to call the UnaryOperator flavor, since this is a new entry point. Using the UnaryOperator is the end goal and there will be no regressions from this decision. This will minimize the work going forward.
I'm open to other opinions though...