3 #ifndef EVAL_CONTAINER_QUAD_INT_H 
    4 #define EVAL_CONTAINER_QUAD_INT_H 
   10 #ifdef __INTEL_COMPILER 
   11 #  include <emmintrin.h> 
   12 #  define __builtin_ia32_pxor128 _mm_xor_pd 
   13 #  define __builtin_ia32_psubd128 _mm_sub_epi32 
   14 #  define __builtin_ia32_paddd128 _mm_add_epi32 
   18 #if (defined __x86_64__) || (defined __i386__) 
   20 #  define OSL_USE_SSE 1 
   23 #  warning "QuadInt without SSE" 
   32 #  ifdef __INTEL_COMPILER 
   44         CArray<long long,2> 
llv;
 
   76         v.v4=(
v4si){ 0, 0, 0, 0 };
 
   94         v.v4=__builtin_ia32_paddd128(
v.v4,si.
v.v4);
 
   96         for(
int i=0;i<4;i++) 
v.
iv[i]+=si.
v.
iv[i];
 
  102         v.v4=__builtin_ia32_psubd128(
v.v4,si.
v.v4);
 
  104         for(
int i=0;i<4;i++) 
v.
iv[i]-=si.
v.
iv[i];
 
  111         unsigned long long scalescale=(
unsigned long long )((
unsigned int)scale);
 
  112         scalescale|=scalescale<<32ull;
 
  113         val.v2=__builtin_ia32_vec_set_v2di(val.v2,(
long long)scalescale,0);
 
  114         val.v2=__builtin_ia32_vec_set_v2di(val.v2,(
long long)scalescale,1);
 
  115         v.v4=__builtin_ia32_pmulld128(
v.v4,val.v4);
 
  117         for(
int i=0;i<4;i++) 
v.
iv[i]*=scale;
 
  121       static size_t size() { 
return 4; }
 
  194       return l[0] == r[0] && l[1] == r[1];
 
  198   using container::QuadInt;
 
  199   using container::QuadIntPair;
 
  201 #endif // EVAL_CONTAINER_QUAD_INT_H