From: Michael Meissner Date: Fri, 20 Nov 2020 23:24:13 +0000 (-0500) Subject: Power10: Add missing IEEE 128-bit XSCMP* built-in mappings. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9bdb34cebcb4f5a9dcebbb5895d1300c2f869cbf;p=gcc.git Power10: Add missing IEEE 128-bit XSCMP* built-in mappings. This patch adds support for mapping the scalar_cmp_exp_qp_* built-in functions to handle arguments that are either TFmode or KFmode, depending on whether long double uses the IEEE 128-bit representation (TFmode) or the IBM 128-bit representation (KFmode). This shows up in the float128-cmp2-runnable.c test when long double uses the IEEE 128-bit representation. gcc/ 2020-11-20 Michael Meissner * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing XSCMP* cases for IEEE 128-bit long double. --- diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c index 3bd89a79bad..d619e231b09 100644 --- a/gcc/config/rs6000/rs6000-call.c +++ b/gcc/config/rs6000/rs6000-call.c @@ -12808,6 +12808,22 @@ rs6000_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, case CODE_FOR_xsiexpqp_kf: icode = CODE_FOR_xsiexpqp_tf; break; case CODE_FOR_xsiexpqpf_kf: icode = CODE_FOR_xsiexpqpf_tf; break; case CODE_FOR_xststdcqp_kf: icode = CODE_FOR_xststdcqp_tf; break; + + case CODE_FOR_xscmpexpqp_eq_kf: + icode = CODE_FOR_xscmpexpqp_eq_tf; + break; + + case CODE_FOR_xscmpexpqp_lt_kf: + icode = CODE_FOR_xscmpexpqp_lt_tf; + break; + + case CODE_FOR_xscmpexpqp_gt_kf: + icode = CODE_FOR_xscmpexpqp_gt_tf; + break; + + case CODE_FOR_xscmpexpqp_unordered_kf: + icode = CODE_FOR_xscmpexpqp_unordered_tf; + break; } if (TARGET_DEBUG_BUILTIN)