This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/36844] New: Vectorizer doesn't support INT<->FP conversions with different size
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jul 2008 21:41:58 -0000
- Subject: [Bug tree-optimization/36844] New: Vectorizer doesn't support INT<->FP conversions with different size
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Intel AVX has variable vector lengths of 128bit and 256bit.
There are 128bit INT and 256bit FP vector arithmetic operations
as well as asymmetric vector conversion operations:
256bit vector (V4DF/V4DI) <-> 256bit vector (D4SI/V4SF)
256bit vector (V8SI) <-> 256bit vecor (V8SF)
The current vectorizer only supports different vector
size based on scalar type. But it doesn't support asymmetric
vector conversion nor different vector size based on
operation. The current AVX branch limits vector size
to 128bit for vectorizer:
/* ??? No autovectorization into MMX or 3DNOW until we can reliably
place emms and femms instructions.
FIXME: AVX has 32byte floating point vector operations and 16byte
integer vector operations. But vectorizer doesn't support
different sizes for integer and floating point vectors. We limit
vector size to 16byte. */
#define UNITS_PER_SIMD_WORD(MODE) \
(TARGET_AVX ? (((MODE) == DFmode || (MODE) == SFmode) ? 16 : 16) \
: (TARGET_SSE ? 16 : UNITS_PER_WORD))
--
Summary: Vectorizer doesn't support INT<->FP conversions with
different size
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36844