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

            Bug ID: 60985
           Summary: _mm_blendv_pd requires the '-msse4.1' option to
                    compile
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jean-charles.pa...@ens-cachan.fr

GCC (4.9.0) fails to compile a call to '_mm_blendv_pd' intrinsic unless we add
the '-msse4.1' gcc option.

End code --------------------- [test_blendv_pd.c]
#include "smmintrin.h"
#include "emmintrin.h"

int main(int argc, const char *argv[])
{
    __m128d a     = _mm_setzero_pd (),
        b    = _mm_setzero_pd (),
        mask     = _mm_setzero_pd ();

    __m128d r = _mm_blendv_pd (a, b, mask);

    return 0;
}
End code --------------------- [test_blendv_pd.c]

Command line: gcc test_blendv_pd.c

GCC output:

In file included from test_blendv_pd.c:2:0:
test_blendv_pd.c: In function 'main':
/opt/gcc-4.9.0/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/include/smmintrin.h:229:1:
error: inlining failed in call to always_inline '_mm_blendv_pd': target
specific option mismatch
 _mm_blendv_pd (__m128d __X, __m128d __Y, __m128d __M)
 ^
test_blendv_pd.c:12:10: error: called from here
  __m128d r = _mm_blendv_pd (a, b, mask);

In case of the '_mm_blend_pd (__m128d, __m128d, int)' function, gcc produces
the following error message:

error: '__builtin_ia32_blendpd' needs isa option -m32 -msse4.1

It would be great to have the same error message for '_mm_blendv'.

Reply via email to