<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Mon, 21 May 2012 04:40:16 -0700 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/avx-emulation-header-file/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network Comments Feed</title>
    <link>http://software.intel.com/en-us/articles/avx-emulation-header-file</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>By SSE Intrinsics Tutorial &amp;laquo; NIX/WIN/WEB</title>
      <description><![CDATA[ n/a ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-51265</link>
      <pubDate>Tue, 02 Nov 2010 11:32:23 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-51265</guid>
    </item>
    <item>
      <title>By Lorenz Bucher</title>
      <description><![CDATA[ Thank you, this is awesome!

I was just going to start writing a file which implements all AVX intrinsics using two SSE intrinsics when I discovered this.

I'm developing in both Windows (Visual Studio 10) and QNX Neutrino (using GCC 4.4.2).

The MS Compiler in the Windows Version has problems with stack/function argument alignment because most are call-by-value. It causes compiler error C2719. Since this issue is fairly common and requires things like modifying Microsofts STL vector header, I can understand why you don't support it in this emulation header.

I've successfully compiled this in QNX Momentics with GCC, however. It hasn't crashed at runtime, but I need to verify the data to make sure everything works as expected, specially with the branching / blend functions.

Thanks again!
Lorenz ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-51670</link>
      <pubDate>Thu, 11 Nov 2010 08:52:45 -0800</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-51670</guid>
    </item>
    <item>
      <title>By Bill Broadley</title>
      <description><![CDATA[ Now that AVX hardware (sandy bridge) chips are shipping I wanted to see how it performed with SAXPY on different size arrays.  With icc version 12.0.2 I tried to compile the above and:

~/src/intel> icc -v
Version 12.0.2
~/src/intel> icc -c i.c
i.c(9): error: type name is not allowed
      for ( size_t len16_ = len & -16; i + 16 <= len16_; i += 16 )  
            ^

i.c(9): error: expected a ";"
      for ( size_t len16_ = len & -16; i + 16 <= len16_; i += 16 )  
                   ^

i.c(9): error: identifier "len16_" is undefined
      for ( size_t len16_ = len & -16; i + 16 <= len16_; i += 16 )  
                                                 ^

Have the intrinsic names changed since this post?  Do I need some AVX specific compiler flags to pick up the right includes?   ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-58076</link>
      <pubDate>Thu, 31 Mar 2011 19:33:50 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-58076</guid>
    </item>
    <item>
      <title>By PC</title>
      <description><![CDATA[ I am still looking for the _mm256_fmadd_pd(__m256d, __m256d, __m256d) intrinsic emulation.  Would anyone care of include it?

Thanks ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-58206</link>
      <pubDate>Mon, 04 Apr 2011 06:44:43 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-58206</guid>
    </item>
    <item>
      <title>By PC</title>
      <description><![CDATA[ Great idea with the "Intrinsics Guide for Intel Advanced Vector Extensions v2.5.1".  However, I would like to see a very critical piece of information missing: the number of cycles required to execute a specific instruction.

Thank you!

PC ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-58386</link>
      <pubDate>Fri, 08 Apr 2011 01:14:53 -0700</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-58386</guid>
    </item>
    <item>
      <title>By Martin Audet</title>
      <description><![CDATA[ Hi,

Thanks for this header file. It allowed me to find a bug in my code with AVX support enabled even if I don't have access to an AVX machine !

By the way, after looking at the code, I found a little potential problem that would become real only if the _mm_broadcast_sd(double const *) function became part of the standard (_mm_broadcast_ss(float const *) is but not the former). This function would return a vector of double, not a vector of float. So it would return an __m128d, not an __m128. This is why I suggest the following patch:

Index: avxintrin_emu.h
===================================================================
--- avxintrin_emu.h	(revision 5759)
+++ avxintrin_emu.h	(working copy)
@@ -601,7 +601,7 @@
 __emu_mm_broadcast_impl( __emu_mm_broadcast_ss, __m128, float )
 __emu_mm_broadcast_impl( __emu_mm256_broadcast_ss, __emu__m256, float )
 
-__emu_mm_broadcast_impl( __emu_mm_broadcast_sd, __m128, double )
+__emu_mm_broadcast_impl( __emu_mm_broadcast_sd, __m128d, double )
 __emu_mm_broadcast_impl( __emu_mm256_broadcast_sd, __emu__m256d, double )
 
 __emu_mm_broadcast_impl( __emu_mm256_broadcast_ps, __emu__m256, __m128 )

Regards,
Martin
  ]]></description>
      <link>http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-70801</link>
      <pubDate>Thu, 23 Feb 2012 09:41:13 -0800</pubDate>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/avx-emulation-header-file/#comment-70801</guid>
    </item>
  </channel></rss>
