public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/14702] New: wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
@ 2004-03-24  2:21 1319 at bot dot ru
  2004-03-24  2:24 ` [Bug target/14702] " 1319 at bot dot ru
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: 1319 at bot dot ru @ 2004-03-24  2:21 UTC (permalink / raw)
  To: gcc-bugs

According to various documents from intel and AMD source argument of pshufd,
pshuflw, pshufhw, pshufw instructions can be register or memory argument (and
not necessarily same register). So i386.md should be fixed:

--- i386.md.~1.520.~	2004-03-19 02:56:10.000000000 +0300
+++ i386.md	2004-03-24 05:01:41.027804888 +0300
@@ -20576,7 +20576,7 @@
 
 (define_insn "mmx_pshufw"
   [(set (match_operand:V4HI 0 "register_operand" "=y")
-        (unspec:V4HI [(match_operand:V4HI 1 "register_operand" "0")
+        (unspec:V4HI [(match_operand:V4HI 1 "nonimmediate_operand" "ym")
 		      (match_operand:SI 2 "immediate_operand" "i")]
 		     UNSPEC_SHUFFLE))]
   "TARGET_SSE || TARGET_3DNOW_A"
@@ -22273,7 +22273,7 @@
 
 (define_insn "sse2_pshufd"
   [(set (match_operand:V4SI 0 "register_operand" "=x")
-        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "0")
+        (unspec:V4SI [(match_operand:V4SI 1 "nonimmediate_operand" "xm")
 		      (match_operand:SI 2 "immediate_operand" "i")]
 		     UNSPEC_SHUFFLE))]
   "TARGET_SSE2"
@@ -22283,7 +22283,7 @@
 
 (define_insn "sse2_pshuflw"
   [(set (match_operand:V8HI 0 "register_operand" "=x")
-        (unspec:V8HI [(match_operand:V8HI 1 "register_operand" "0")
+        (unspec:V8HI [(match_operand:V8HI 1 "nonimmediate_operand" "xm")
 		      (match_operand:SI 2 "immediate_operand" "i")]
 		     UNSPEC_PSHUFLW))]
   "TARGET_SSE2"
@@ -22293,7 +22293,7 @@
 
 (define_insn "sse2_pshufhw"
   [(set (match_operand:V8HI 0 "register_operand" "=x")
-        (unspec:V8HI [(match_operand:V8HI 1 "register_operand" "0")
+        (unspec:V8HI [(match_operand:V8HI 1 "nonimmediate_operand" "xm")
 		      (match_operand:SI 2 "immediate_operand" "i")]
 		     UNSPEC_PSHUFHW))]
   "TARGET_SSE2"

I will send this patch to gcc-patches soon. I tested this with my mmx cpu burner
and it gives identical results and zero speed difference (probably because it is
difficult task -- to fill athlon 3-way decoder).

-- 
           Summary: wrong definitions of instructions mmx_pshufw,
                    sse2_pshufd, sse2_pshuflw, sse2_pshufhw
           Product: gcc
           Version: 3.3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: 1319 at bot dot ru
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14702


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/14702] wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
  2004-03-24  2:21 [Bug target/14702] New: wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 1319 at bot dot ru
@ 2004-03-24  2:24 ` 1319 at bot dot ru
  2004-03-24  3:48 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: 1319 at bot dot ru @ 2004-03-24  2:24 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |3.3.4 3.4.0 3.5.0 tree-ssa
                   |                            |lno


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14702


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/14702] wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
  2004-03-24  2:21 [Bug target/14702] New: wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 1319 at bot dot ru
  2004-03-24  2:24 ` [Bug target/14702] " 1319 at bot dot ru
@ 2004-03-24  3:48 ` pinskia at gcc dot gnu dot org
  2004-04-01 22:45 ` cvs-commit at gcc dot gnu dot org
  2004-04-01 22:46 ` rth at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-24  3:48 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-24 03:48 -------
Confirmed, patch was submitted here: <http://gcc.gnu.org/ml/gcc-patches/2004-03/
msg01970.html>.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |patch, pessimizes-code
      Known to fail|3.3.4 3.4.0 3.5.0 tree-ssa  |3.3.4 3.4.0 3.5.0
                   |lno                         |
   Last reconfirmed|0000-00-00 00:00:00         |2004-03-24 03:48:52
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14702


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/14702] wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
  2004-03-24  2:21 [Bug target/14702] New: wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 1319 at bot dot ru
  2004-03-24  2:24 ` [Bug target/14702] " 1319 at bot dot ru
  2004-03-24  3:48 ` pinskia at gcc dot gnu dot org
@ 2004-04-01 22:45 ` cvs-commit at gcc dot gnu dot org
  2004-04-01 22:46 ` rth at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-04-01 22:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-04-01 22:45 -------
Subject: Bug 14702

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2004-04-01 22:45:30

Modified files:
	gcc            : ChangeLog 
	gcc/config/i386: i386.md 

Log message:
	PR target/14702
	* config/i386/i386.md: fix source operand constraints in
	mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.3328&r2=2.3329
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&r1=1.521&r2=1.522



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14702


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/14702] wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
  2004-03-24  2:21 [Bug target/14702] New: wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 1319 at bot dot ru
                   ` (2 preceding siblings ...)
  2004-04-01 22:45 ` cvs-commit at gcc dot gnu dot org
@ 2004-04-01 22:46 ` rth at gcc dot gnu dot org
  3 siblings, 0 replies; 5+ messages in thread
From: rth at gcc dot gnu dot org @ 2004-04-01 22:46 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rth at gcc dot gnu dot org  2004-04-01 22:46 -------
Patch applied.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14702


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-04-01 22:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-24  2:21 [Bug target/14702] New: wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 1319 at bot dot ru
2004-03-24  2:24 ` [Bug target/14702] " 1319 at bot dot ru
2004-03-24  3:48 ` pinskia at gcc dot gnu dot org
2004-04-01 22:45 ` cvs-commit at gcc dot gnu dot org
2004-04-01 22:46 ` rth at gcc dot gnu dot org

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).