From: Richard Sandiford <richard.sandiford@arm.com>
To: gcc-patches@gcc.gnu.org
Cc: julian@codesourcery.com, ams@codesourcery.com
Subject: [03/11] [amdgcn] Fix ambiguous .md attribute uses
Date: Fri, 05 Jul 2019 15:13:00 -0000 [thread overview]
Message-ID: <mptftnky0px.fsf@arm.com> (raw)
In-Reply-To: <mpty31cy10w.fsf@arm.com> (Richard Sandiford's message of "Fri, 05 Jul 2019 16:05:51 +0100")
This patch is part of a series that fixes ambiguous attribute
uses in .md files, i.e. cases in which attributes didn't use
<ITER:ATTR> to specify an iterator, and in which <ATTR> could
have different values depending on the iterator chosen.
I think this is a genuine bugfix for the case in which the 1REG_MODE
and 1REG_ALT are different, since previously we would use the 1REG_MODE
for both the comparison and the select, even though the operands being
compared are 1REG_ALT rather than 1REG_MODE.
2019-07-05 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* config/gcn/gcn-valu.md
(vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
gen_vcond_mask_<VEC_1REG_MODE:mode>di.
(vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
but using the _exec comparison patterns.
(vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
(vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
but using the _exec comparison patterns.
Index: gcc/config/gcn/gcn-valu.md
===================================================================
--- gcc/config/gcn/gcn-valu.md 2019-03-08 18:15:37.764736305 +0000
+++ gcc/config/gcn/gcn-valu.md 2019-07-05 15:05:24.076486317 +0100
@@ -2574,10 +2574,10 @@ (define_expand "vcond<VEC_1REG_MODE:mode
""
{
rtx tmp = gen_reg_rtx (DImode);
- emit_insn (gen_vec_cmp<mode>di (tmp, operands[3], operands[4],
- operands[5]));
- emit_insn (gen_vcond_mask_<mode>di (operands[0], operands[1], operands[2],
- tmp));
+ emit_insn (gen_vec_cmp<VEC_1REG_ALT:mode>di
+ (tmp, operands[3], operands[4], operands[5]));
+ emit_insn (gen_vcond_mask_<VEC_1REG_MODE:mode>di
+ (operands[0], operands[1], operands[2], tmp));
DONE;
})
@@ -2592,10 +2592,10 @@ (define_expand "vcond<VEC_1REG_MODE:mode
""
{
rtx tmp = gen_reg_rtx (DImode);
- emit_insn (gen_vec_cmp<mode>di_exec (tmp, operands[3], operands[4],
- operands[5], operands[6]));
- emit_insn (gen_vcond_mask_<mode>di (operands[0], operands[1], operands[2],
- tmp));
+ emit_insn (gen_vec_cmp<VEC_1REG_ALT:mode>di_exec
+ (tmp, operands[3], operands[4], operands[5], operands[6]));
+ emit_insn (gen_vcond_mask_<VEC_1REG_MODE:mode>di
+ (operands[0], operands[1], operands[2], tmp));
DONE;
})
@@ -2609,10 +2609,10 @@ (define_expand "vcondu<VEC_1REG_INT_MODE
""
{
rtx tmp = gen_reg_rtx (DImode);
- emit_insn (gen_vec_cmp<mode>di (tmp, operands[3], operands[4],
- operands[5]));
- emit_insn (gen_vcond_mask_<mode>di (operands[0], operands[1], operands[2],
- tmp));
+ emit_insn (gen_vec_cmp<VEC_1REG_INT_ALT:mode>di
+ (tmp, operands[3], operands[4], operands[5]));
+ emit_insn (gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di
+ (operands[0], operands[1], operands[2], tmp));
DONE;
})
@@ -2627,10 +2627,10 @@ (define_expand "vcondu<VEC_1REG_INT_MODE
""
{
rtx tmp = gen_reg_rtx (DImode);
- emit_insn (gen_vec_cmp<mode>di_exec (tmp, operands[3], operands[4],
- operands[5], operands[6]));
- emit_insn (gen_vcond_mask_<mode>di (operands[0], operands[1], operands[2],
- tmp));
+ emit_insn (gen_vec_cmp<VEC_1REG_INT_ALT:mode>di_exec
+ (tmp, operands[3], operands[4], operands[5], operands[6]));
+ emit_insn (gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di
+ (operands[0], operands[1], operands[2], tmp));
DONE;
})
next prev parent reply other threads:[~2019-07-05 15:12 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-05 15:08 [00/11] Diagnose " Richard Sandiford
2019-07-05 15:10 ` [01/11] [arch64] Fix " Richard Sandiford
2019-07-05 15:12 ` [02/11] [arm] " Richard Sandiford
2019-07-05 15:52 ` Kyrill Tkachov
2019-07-05 15:13 ` Richard Sandiford [this message]
2019-07-05 15:43 ` [03/11] [amdgcn] " Andrew Stubbs
2019-07-05 15:15 ` [04/11] [h8300] " Richard Sandiford
2019-07-05 17:23 ` Jeff Law
2019-07-05 15:17 ` [05/11] [i386] " Richard Sandiford
2019-07-05 15:45 ` Uros Bizjak
2019-07-05 15:19 ` [06/11] [mips] " Richard Sandiford
2019-07-12 8:24 ` Ping: " Richard Sandiford
2019-07-15 20:24 ` Jim Wilson
2019-07-05 15:20 ` [07/11] [riscv] " Richard Sandiford
2019-07-08 4:41 ` Jim Wilson
2019-07-05 15:22 ` [08/11] [rs6000] " Richard Sandiford
2019-07-05 16:03 ` Segher Boessenkool
2019-07-05 16:38 ` Richard Sandiford
2019-07-05 17:26 ` Segher Boessenkool
2019-07-05 17:38 ` Richard Sandiford
2019-07-05 15:27 ` [09/11] [s390] " Richard Sandiford
2019-07-05 15:59 ` Andreas Krebbel
2019-07-05 15:31 ` [10/11] Use file_location for md_reader's ptr_loc Richard Sandiford
2019-07-05 15:39 ` [11/11] Report ambiguous uses of .md attributes Richard Sandiford
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=mptftnky0px.fsf@arm.com \
--to=richard.sandiford@arm.com \
--cc=ams@codesourcery.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=julian@codesourcery.com \
/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: link
Be 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).