From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1461) id E63763858404; Wed, 26 Apr 2023 12:47:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E63763858404 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1682513279; bh=svZwa8SNEhsPjq2HOT7qz90kwz/+0NgXUXlaKhnOVa0=; h=From:To:Subject:Date:From; b=Hn1HnJuKE1fhMufm/Aflbnq1F6O0TVCeJlE/i5FJXjF8MaLmUG51wFaJ1vtuhlDc8 /FYKDsb1gtiyxaTMt+SEzgmVdowBbIztE1qZlsuuYJyST3jANx5gneNlPmNM2xKBTv D/YkzWV9x48gMKUgtq28g2Bh2gwOI0M6kWWco3Ks= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Andrew Stubbs To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-7255] amdgcn: bug fix ldexp insn X-Act-Checkin: gcc X-Git-Author: Andrew Stubbs X-Git-Refname: refs/heads/releases/gcc-13 X-Git-Oldrev: 26f58fff56d55cd6bf8860a556c9dcde9544fdc9 X-Git-Newrev: 76f6a10e41b01d69e2e8b4a21baf877ecb3a6552 Message-Id: <20230426124759.E63763858404@sourceware.org> Date: Wed, 26 Apr 2023 12:47:59 +0000 (GMT) List-Id: https://gcc.gnu.org/g:76f6a10e41b01d69e2e8b4a21baf877ecb3a6552 commit r13-7255-g76f6a10e41b01d69e2e8b4a21baf877ecb3a6552 Author: Andrew Stubbs Date: Thu Apr 20 11:11:13 2023 +0100 amdgcn: bug fix ldexp insn The vop3 instructions don't support B constraint immediates. Also, take the use the SV_FP iterator to delete a redundant pattern. gcc/ChangeLog: * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes. (ldexp3): Delete. (ldexp3): Change "B" to "A". (cherry picked from commit 0be4fbeaa6a7a2db466a6fd2efad2afdb642bac0) Diff: --- gcc/config/gcn/gcn-valu.md | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/gcc/config/gcn/gcn-valu.md b/gcc/config/gcn/gcn-valu.md index 4a40a9d8d4c..44c48468dd6 100644 --- a/gcc/config/gcn/gcn-valu.md +++ b/gcc/config/gcn/gcn-valu.md @@ -208,7 +208,9 @@ (V64HF "HF") (V64SF "SF") (V64DI "DI") (V64DF "DF")]) (define_mode_attr vnsi - [(V2QI "v2si") (V2HI "v2si") (V2HF "v2si") (V2SI "v2si") + [(QI "si") (HI "si") (SI "si") + (HF "si") (SF "si") (DI "si") (DF "si") + (V2QI "v2si") (V2HI "v2si") (V2HF "v2si") (V2SI "v2si") (V2SF "v2si") (V2DI "v2si") (V2DF "v2si") (V4QI "v4si") (V4HI "v4si") (V4HF "v4si") (V4SI "v4si") (V4SF "v4si") (V4DI "v4si") (V4DF "v4si") @@ -222,7 +224,9 @@ (V64SF "v64si") (V64DI "v64si") (V64DF "v64si")]) (define_mode_attr VnSI - [(V2QI "V2SI") (V2HI "V2SI") (V2HF "V2SI") (V2SI "V2SI") + [(QI "SI") (HI "SI") (SI "SI") + (HF "SI") (SF "SI") (DI "SI") (DF "SI") + (V2QI "V2SI") (V2HI "V2SI") (V2HF "V2SI") (V2SI "V2SI") (V2SF "V2SI") (V2DI "V2SI") (V2DF "V2SI") (V4QI "V4SI") (V4HI "V4SI") (V4HF "V4SI") (V4SI "V4SI") (V4SF "V4SI") (V4DI "V4SI") (V4DF "V4SI") @@ -3043,21 +3047,10 @@ ; Implement ldexp pattern -(define_insn "ldexp3" - [(set (match_operand:FP 0 "register_operand" "=v") - (unspec:FP - [(match_operand:FP 1 "gcn_alu_operand" "vB") - (match_operand:SI 2 "gcn_alu_operand" "vSvA")] - UNSPEC_LDEXP))] - "" - "v_ldexp%i0\t%0, %1, %2" - [(set_attr "type" "vop3a") - (set_attr "length" "8")]) - (define_insn "ldexp3" - [(set (match_operand:V_FP 0 "register_operand" "= v") - (unspec:V_FP - [(match_operand:V_FP 1 "gcn_alu_operand" " vB") + [(set (match_operand:SV_FP 0 "register_operand" "= v") + (unspec:SV_FP + [(match_operand:SV_FP 1 "gcn_alu_operand" " vA") (match_operand: 2 "gcn_alu_operand" "vSvA")] UNSPEC_LDEXP))] ""