- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Why the compiler does not support 16-bit integer multitude vectorization?.
for example loop:
DO I = 1, N
A(I,J) = A(I,J) + C*A(I,L)
END DO
When A and C are INTEGER*2 the compiler outs "unsupported loop structure"
But MMX has PMADDWD command for such operations.
for example loop:
DO I = 1, N
A(I,J) = A(I,J) + C*A(I,L)
END DO
When A and C are INTEGER*2 the compiler outs "unsupported loop structure"
But MMX has PMADDWD command for such operations.
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't yet know the details of what Intel Fortran's vectorization is capable of, but I do have experience with other vectorizing compilers and they wouldn't have vectorized INTEGER*2 arrays either. In fact, a lot of normal optimizations don't tend to happen when using 8 or 16-bit integers. Is there a particular reason you chose INTEGER*2? What happens if you make these INTEGER*4?
Steve
Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank You for answer.
I have no restrictions to use INTEGER*4, but I know that MMX doesn't have any 32-bit multitude commands.
It probably causes to message from compiler: unsupported data type.
I have no restrictions to use INTEGER*4, but I know that MMX doesn't have any 32-bit multitude commands.
It probably causes to message from compiler: unsupported data type.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page