public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "tnfchris at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/108583] [13 Regression] wrong code with vector division by uint16 at -O2 Date: Tue, 31 Jan 2023 15:01:41 +0000 [thread overview] Message-ID: <bug-108583-4-1Aoq1iSqmH@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-108583-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108583 --- Comment #18 from Tamar Christina <tnfchris at gcc dot gnu.org> --- > > > > Ack, that also tracks with what I tried before, we don't indeed track ranges > > for vector ops. The general case can still be handled slightly better (I think) > > but it doesn't become as clear of a win as this one. > > > > > You probably did so elsewhere some time ago, but what exactly are those > > > four instructions? (pointers to specifications appreciated) > > > > For NEON we use: > > https://developer.arm.com/documentation/ddi0596/2021-12/SIMD-FP-Instructions/ADDHN--ADDHN2--Add-returning-High-Narrow- > > so thats a add + pack high > Yes, though with no overflow, the addition is done in twice the precision of the original type. So it's more a widening add + pack high which narrows it back and zero extends. > > https://developer.arm.com/documentation/ddi0596/2021-12/SIMD-FP-Instructions/UADDW--UADDW2--Unsigned-Add-Wide- > > and that unpacks (zero-extends) the high/low part of one operand of an add > > I wonder if we'd open-code the pack / unpack and use regular add whether > combine can synthesize uaddw and addhn? The pack and unpack would be > vec_perms on GIMPLE (plus V_C_E). I don't think so for addhn, because it wouldn't truncate the top bits, it truncates the bottom bits. The instruction does element1 = Elem[operand1, e, 2*esize]; element2 = Elem[operand2, e, 2*esize]; So it widens on input. > > So the difficulty here will be to decide whether that's in the end > better than what the pattern handling code does now, right? Because > I think most targets will be able to do the above but lacking the > special adds it will be slower because of the extra packing/unpacking? > > That said, can we possibly do just that costing (would be a first in > the pattern code I guess) with a target hook? Or add optabs for > the addh operations so we can query support? We could, the alternative wouldn't be correct for costing I think.. if we generate *+ , vec_perm that's gonna be more expensive.
next prev parent reply other threads:[~2023-01-31 15:01 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-28 14:00 [Bug rtl-optimization/108583] New: " zsojka at seznam dot cz 2023-01-30 4:19 ` [Bug target/108583] " pinskia at gcc dot gnu.org 2023-01-30 4:22 ` pinskia at gcc dot gnu.org 2023-01-30 8:31 ` rguenth at gcc dot gnu.org 2023-01-30 14:20 ` tnfchris at gcc dot gnu.org 2023-01-30 14:52 ` rguenther at suse dot de 2023-01-30 15:01 ` tnfchris at gcc dot gnu.org 2023-01-30 16:52 ` rsandifo at gcc dot gnu.org 2023-01-30 17:04 ` tnfchris at gcc dot gnu.org 2023-01-31 10:31 ` rguenth at gcc dot gnu.org 2023-01-31 11:01 ` rsandifo at gcc dot gnu.org 2023-01-31 11:39 ` tnfchris at gcc dot gnu.org 2023-01-31 11:44 ` rguenther at suse dot de 2023-01-31 11:58 ` tnfchris at gcc dot gnu.org 2023-01-31 12:03 ` rsandifo at gcc dot gnu.org 2023-01-31 12:19 ` rguenther at suse dot de 2023-01-31 13:35 ` tnfchris at gcc dot gnu.org 2023-01-31 14:33 ` rguenther at suse dot de 2023-01-31 14:45 ` rguenther at suse dot de 2023-01-31 15:01 ` tnfchris at gcc dot gnu.org [this message] 2023-02-01 7:29 ` rguenther at suse dot de 2023-02-01 16:22 ` tnfchris at gcc dot gnu.org 2023-02-02 8:03 ` tnfchris at gcc dot gnu.org 2023-02-02 8:50 ` rguenther at suse dot de 2023-02-02 8:55 ` tnfchris at gcc dot gnu.org 2023-02-08 13:57 ` tnfchris at gcc dot gnu.org 2023-02-09 7:41 ` rguenther at suse dot de 2023-03-12 18:43 ` cvs-commit at gcc dot gnu.org 2023-03-12 18:43 ` cvs-commit at gcc dot gnu.org 2023-03-12 18:43 ` cvs-commit at gcc dot gnu.org 2023-03-12 18:44 ` cvs-commit at gcc dot gnu.org 2023-03-12 18:44 ` cvs-commit at gcc dot gnu.org 2023-03-12 18:45 ` tnfchris at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-108583-4-1Aoq1iSqmH@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).