================ @@ -3588,8 +3588,13 @@ bool SparcTargetLowering::useLoadStackGuardNode(const Module &M) const { bool SparcTargetLowering::isFPImmLegal(const APFloat &Imm, EVT VT, bool ForCodeSize) const { - return Subtarget->isVIS() && (VT == MVT::f32 || VT == MVT::f64) && - Imm.isZero(); + if (VT != MVT::f32 && VT != MVT::f64) + return false; + if (Imm.isZero()) + return Subtarget->isVIS(); + if (Imm.isExactlyValue(+0.5) || Imm.isExactlyValue(-0.5)) + return Subtarget->isVIS3(); + return false; ---------------- arsenm wrote:
Can you do this separately? I'd also expect to do the target check before the value check https://github.com/llvm/llvm-project/pull/135718 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits