From 5fba7efc6cd96ae81df55e06e3fc9a9cbd7f3f3a Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Tue, 12 Nov 2019 22:02:03 +0100 Subject: [PATCH] rs6000: Handle unordered for xscmpexp[dq]p without NaNs (PR92449) * config/rs6000/vsx.md (xscmpexpdp_ for CMP_TEST): Handle UNORDERED if !HONOR_NANS (DFmode). (xscmpexpqp__ for CMP_TEST and IEEE128): Handle UNORDERED if !HONOR_NANS (mode). From-SVN: r278103 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/vsx.md | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d283626d06a..574b5984558 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-11-12 Segher Boessenkool + + * config/rs6000/vsx.md (xscmpexpdp_ for CMP_TEST): Handle + UNORDERED if !HONOR_NANS (DFmode). + (xscmpexpqp__ for CMP_TEST and IEEE128): Handle UNORDERED + if !HONOR_NANS (mode). + 2019-11-12 Jan Hubicka * ipa-cp.c (ignore_edge_p): Also look for optimize flag. diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md index aa13b20f574..3aa8e215c11 100644 --- a/gcc/config/rs6000/vsx.md +++ b/gcc/config/rs6000/vsx.md @@ -4526,6 +4526,12 @@ (const_int 0)))] "TARGET_P9_VECTOR" { + if ( == UNORDERED && !HONOR_NANS (DFmode)) + { + emit_move_insn (operands[0], const0_rtx); + DONE; + } + operands[3] = gen_reg_rtx (CCFPmode); }) @@ -4554,6 +4560,12 @@ (const_int 0)))] "TARGET_P9_VECTOR" { + if ( == UNORDERED && !HONOR_NANS (mode)) + { + emit_move_insn (operands[0], const0_rtx); + DONE; + } + operands[3] = gen_reg_rtx (CCFPmode); }) -- 2.30.2