This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: target/5378: ICE: unrecognizable insn prefetch
- From: Richard Henderson <rth at redhat dot com>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 14 Jan 2002 23:46:01 -0000
- Subject: Re: target/5378: ICE: unrecognizable insn prefetch
- Reply-to: Richard Henderson <rth at redhat dot com>
The following reply was made to PR target/5378; it has been noted by GNATS.
From: Richard Henderson <rth@redhat.com>
To: Janis Johnson <janis187@us.ibm.com>
Cc: ritzert@t-online.de, gcc-gnats@gcc.gnu.org
Subject: Re: target/5378: ICE: unrecognizable insn prefetch
Date: Mon, 14 Jan 2002 15:36:58 -0800
On Mon, Jan 14, 2002 at 01:03:25PM -0800, Janis Johnson wrote:
> > a.c:15: unrecognizable insn:
> > (insn 154 81 31 (prefetch (plus:SI (reg/f:SI 72)
> > (const_int 384 [0x180]))
> > (const_int 1 [0x1])
> > (const_int 3 [0x3])) -1 (nil)
> > (nil))
It was indeed a stupid typo. Fixed thus.
r~
* config/i386/i386.md (prefetch): Tidy.
(prefetch_3dnow): Fix locality operand.
Index: i386.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v
retrieving revision 1.329
diff -c -p -d -u -r1.329 i386.md
--- i386.md 2002/01/12 10:05:26 1.329
+++ i386.md 2002/01/14 23:31:06
@@ -19607,6 +19607,7 @@
{
int rw = INTVAL (operands[1]);
int locality = INTVAL (operands[2]);
+
if (rw != 0 && rw != 1)
abort ();
if (locality < 0 || locality > 3)
@@ -19617,13 +19618,9 @@
(K6 machines). Otherwise use SSE prefetch as it allows specifying
of locality. */
if (TARGET_3DNOW && (!TARGET_PREFETCH_SSE || rw))
- {
- operands[2] = GEN_INT (3);
- }
+ operands[2] = GEN_INT (3);
else
- {
- operands[1] = const0_rtx;
- }
+ operands[1] = const0_rtx;
})
(define_insn "*prefetch_sse"
@@ -19647,7 +19644,7 @@
(define_insn "*prefetch_3dnow"
[(prefetch (match_operand:SI 0 "address_operand" "p")
(match_operand:SI 1 "const_int_operand" "n")
- (const_int 0))]
+ (const_int 3))]
"TARGET_3DNOW"
{
if (INTVAL (operands[1]) == 0)