From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1729) id 88CAA3857C5C; Tue, 27 Sep 2022 22:14:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 88CAA3857C5C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1664316849; bh=QYpHpkRIp4NVhUGyrMxCdpfR0VHs9SvHc79Vt9MisK0=; h=From:To:Subject:Date:From; b=GCqiC3KrK0Zl4y44/W3u6TU7+nVHvbekYOdgKPwjfD5zkDPmn2T3rbjzLIZLX/tQ8 u7FMSFI9g/TZwGyfQsD0ffmkKHAFOHkjvOjYSNSwP8F9bNMl9aH3HI2CFbhLItV1lp Ffs9patCSZnq89Px61R2IMpR2AvVb8fHUqwxA+B8= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Kwok Yeung To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-12] amdgcn: Add builtin for vectorized DFmode fabs operation X-Act-Checkin: gcc X-Git-Author: Kwok Cheung Yeung X-Git-Refname: refs/heads/devel/omp/gcc-12 X-Git-Oldrev: b656c03ff8c4803e3af13429e2bec93709946f2f X-Git-Newrev: 87caae2e83f7a8c2c9bf0ba996bc75220e54fadf Message-Id: <20220927221409.88CAA3857C5C@sourceware.org> Date: Tue, 27 Sep 2022 22:14:09 +0000 (GMT) List-Id: https://gcc.gnu.org/g:87caae2e83f7a8c2c9bf0ba996bc75220e54fadf commit 87caae2e83f7a8c2c9bf0ba996bc75220e54fadf Author: Kwok Cheung Yeung Date: Tue Sep 27 21:30:11 2022 +0000 amdgcn: Add builtin for vectorized DFmode fabs operation 2022-09-27 Kwok Cheung Yeung gcc/ * config/gcn/gcn-builtins.def (FABSV): New builtin. * config/gcn/gcn.cc (gcn_expand_builtin_1): Generate builtin for GCN_BUILTIN_FABSV. Diff: --- gcc/ChangeLog.omp | 6 ++++++ gcc/config/gcn/gcn-builtins.def | 5 +++++ gcc/config/gcn/gcn.cc | 13 +++++++++++++ 3 files changed, 24 insertions(+) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index 39e094476c9..9933325bf20 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,9 @@ +2022-09-27 Kwok Cheung Yeung + + * config/gcn/gcn-builtins.def (FABSV): New builtin. + * config/gcn/gcn.cc (gcn_expand_builtin_1): Generate + builtin for GCN_BUILTIN_FABSV. + 2022-09-27 Kwok Cheung Yeung * config/gcn/gcn-valu.md (math_unop_insn): New attribute. diff --git a/gcc/config/gcn/gcn-builtins.def b/gcc/config/gcn/gcn-builtins.def index 27691909925..21e3f0131e4 100644 --- a/gcc/config/gcn/gcn-builtins.def +++ b/gcc/config/gcn/gcn-builtins.def @@ -64,6 +64,11 @@ DEF_BUILTIN (FABSVF, 3 /*CODE_FOR_fabsvf */, _A2 (GCN_BTI_V64SF, GCN_BTI_V64SF), gcn_expand_builtin_1) +DEF_BUILTIN (FABSV, 3 /*CODE_FOR_fabsv */, + "fabsv", B_INSN, + _A2 (GCN_BTI_V64DF, GCN_BTI_V64DF), + gcn_expand_builtin_1) + DEF_BUILTIN (LDEXPVF, 3 /*CODE_FOR_ldexpvf */, "ldexpvf", B_INSN, _A3 (GCN_BTI_V64SF, GCN_BTI_V64SF, GCN_BTI_V64SI), diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc index ac8784a9a3d..a3f21abc391 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -4032,6 +4032,19 @@ gcn_expand_builtin_1 (tree exp, rtx target, rtx /*subtarget */ , (target, arg, gcn_gen_undef (V64SFmode), exec)); return target; } + case GCN_BUILTIN_FABSV: + { + if (ignore) + return target; + rtx exec = gcn_full_exec_reg (); + rtx arg = force_reg (V64DFmode, + expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX, + V64DFmode, + EXPAND_NORMAL)); + emit_insn (gen_absv64df2_exec + (target, arg, gcn_gen_undef (V64DFmode), exec)); + return target; + } case GCN_BUILTIN_LDEXPVF: { if (ignore)