Bug 39261 - _mm256_set_epi64x failed on 32bit
Summary: _mm256_set_epi64x failed on 32bit
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.4.0
: P3 normal
Target Milestone: 4.4.0
Assignee: Not yet assigned to anyone
URL: http://gcc.gnu.org/ml/gcc-patches/200...
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-21 18:57 UTC by H.J. Lu
Modified: 2009-02-22 15:28 UTC (History)
2 users (show)

See Also:
Host:
Target: i686-pc-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2009-02-21 18:57:32 UTC
With revision 144357, I got

FAIL: gcc.target/i386/avx-set-v4di-4.c (internal compiler error)
FAIL: gcc.target/i386/avx-set-v4di-4.c (test for excess errors)
FAIL: gcc.target/i386/avx-set-v4di-5.c (internal compiler error)
FAIL: gcc.target/i386/avx-set-v4di-5.c (test for excess errors)

bash-3.2$ cat /tmp/x.c 
typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__));

__m256i
foo (long long x)
{
  return (__m256i) {0, x, 0, 0};
}

__m256i
bar (long long x)
{
  return (__m256i) {1, x, 1, 1};
}
bash-3.2$ ./xgcc -B./ -S -O2 -mavx /tmp/x.c -m32
/tmp/x.c: In function ‘foo’:
/tmp/x.c:7: error: unrecognizable insn:
(insn 8 7 9 3 /tmp/x.c:5 (set (reg:V2DI 61)
        (vec_merge:V2DI (vec_duplicate:V2DI (reg/v:DI 59 [ x ]))
            (reg:V2DI 61)
            (const_int 2 [0x2]))) -1 (nil))
/tmp/x.c:7: internal compiler error: in extract_insn, at recog.c:2038
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
bash-3.2$
Comment 1 H.J. Lu 2009-02-21 19:29:29 UTC
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2009-02/msg01004.html
Comment 2 hjl@gcc.gnu.org 2009-02-22 00:44:39 UTC
Subject: Bug 39261

Author: hjl
Date: Sun Feb 22 00:44:23 2009
New Revision: 144366

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144366
Log:
2008-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39261
	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
	ix86_expand_vector_set for V4DImode in 64bit mode only.
	(ix86_expand_vector_init_one_var): Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c

Comment 3 H.J. Lu 2009-02-22 15:28:51 UTC
Fixed.