[cfe-dev] [Clang++] Error with handling casting operator to SIMD types

Eric Christopher echristo at apple.com
Fri May 14 23:02:35 PDT 2010


Thanks Chris!

Sent from my iPhone

On May 14, 2010, at 10:55 PM, Chris Lattner <clattner at apple.com> wrote:

> 
> On May 14, 2010, at 4:57 PM, joel falcou wrote:
> 
>> Here is a sample file that compiles correctly on g++ and MSVC:
> 
> Fixed in r103864, thanks!
> 
> -Chris
> 
>> 
>> #include <cstdio>
>> #include <xmmintrin.h>
>> 
>> template <class V > 
>> struct foo 
>> {
>> V m;
>> operator V() const { return m; }
>> }; 
>> 
>> int main()
>> {
>> foo <__m128> x =  {{1, 2, 3, 4}};
>> __m128 y = _mm_shuffle_ps(x, x, 0);
>> }
>> 
>> 
>> Latets clang (fresh from the SVN) on Linux x86 give the following error:
>> 
>> src/pipo.cpp:16:14: error: first two arguments to 
>> __builtin_shufflevector must be vectors
>> __m128 y = _mm_shuffle_ps(x, x, 0);
>>           ^~~~~~~~~~~~~~~~~~~~~~~
>> In file included from src/pipo.cpp:2:
>> /usr/local/lib/clang/2.0/include/xmmintrin.h:726:10: note: instantiated 
>> from:
>>      (__builtin_shufflevector(a, b, (mask) & 0x3, ((mask) & 0xc) >> 2, \
>>       ^
>> 1 error generated.
>> 
>> This error doesn't appear if we use _mm_add_ps or other intrinsics. Same 
>> behavior for __m128i and __m128d
>> 
>> -- 
>> ___________________________________________
>> Joel Falcou - Assistant Professor
>> PARALL Team - LRI - Universite Paris Sud XI
>> Tel : (+33)1 69 15 66 35
>> 
>> 
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev



More information about the cfe-dev mailing list