[SVE] Fix SVEDup0 matching -0.0f
authorStephen Long <steplong@quicinc.com>
Tue, 30 Aug 2022 18:06:43 +0000 (11:06 -0700)
committerStephen Long <steplong@quicinc.com>
Tue, 30 Aug 2022 18:07:17 +0000 (11:07 -0700)
commit40999cbd93795fb928ff1e0d48bd74377218651a
tree2baca7ffb1ffc14839f2ee2462be979081e53096
parentd2a8a3af5e64a6dcfbe463311091d9e6b4d9c102
[SVE] Fix SVEDup0 matching -0.0f

Because of D128669, CPY is being used to zero active lanes even in the case of -0.0f. This patch checks for floating point positive zero. That way SVEDup0 won't match -0.0f.

Fixes https://github.com/llvm/llvm-project/issues/57428

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D132880
llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve-vselect-imm.ll