This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] fix vfmsubaddpd/vfmaddsubpd generation
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Quentin Neill <quentin dot neill dot gnu at gmail dot com>
- Date: Wed, 18 May 2011 17:32:43 +0200
- Subject: Re: [PATCH] fix vfmsubaddpd/vfmaddsubpd generation
Hello!
> This patch fixes an obvious problem: the fma4_fmsubadd/fma4_fmaddsub
> instruction templates don't generate vfmsubaddpd/vfmaddsubpd because
> they don't use <ssemodesuffix>
>
> This passes bootstrap on x86_64 on trunk. Okay to commit?
See comments in the code.
> BTW, I'm testing on gcc-4_6-branch. Should I post a different patch
> thread, or just use this one?
No, the patch is clear and simple enough, you don't need to post it twice.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3625d9b..e86ea4e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-17 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
+ (fma4_fmaddsub): Likewise
+
2011-05-17 Richard Guenther <rguenther@suse.de>
ChangeLog should be included in the message body, not in the patch.
Please see [1] for details.
* gimple.c (iterative_hash_gimple_type): Simplify singleton
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 291bffb..7c4e6dd 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -1663,7 +1663,7 @@
(match_operand:VF 3 "nonimmediate_operand" "xm,x")]
UNSPEC_FMADDSUB))]
"TARGET_FMA4"
- "vfmaddsubps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
+ "vfmaddsubp<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
No, <ssemodesuffix> mode attribute resolves to ps and pd for VF mode
iterator, so "vfmaddsub<ssemodesuffix>".
@@ -1676,7 +1676,7 @@
(match_operand:VF 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMADDSUB))]
"TARGET_FMA4"
- "vfmsubaddps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
+ "vfmsubaddp<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
Same here.
OK everywhere with these two changes.
[1] http://gcc.gnu.org/contribute.html.
Thanks,
Uros.