Skip to content
  • Chris Lattner's avatar
    diagnose errors when a builtin that require constant arguments don't have them. · 3be167f6
    Chris Lattner authored
    For example, on:
    
    #include <emmintrin.h>
    int foo(int N) {
     __m128i white2;
     white2 = _mm_slli_si128(white2, N);
     return 0;
    } 
    
    we used to get:
    fatal error: error in backend: Cannot yet select: intrinsic %llvm.x86.sse2.psll.dq
    
    now we get:
    /Users/sabre/t.c:4:11: error: argument to '__builtin_ia32_pslldqi128' must be a
          constant integer
     white2 = _mm_slli_si128(white2, N);
              ^~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /Users/sabre/t.c:1:
    /Volumes/Projects/cvs/llvm/Debug+Asserts/lib/clang/2.9/include/emmintrin.h:781:13: note: instantiated from:
      ((__m128i)__builtin_ia32_pslldqi128((__m128i)(VEC), (IMM)*8))
                ^                                         ~~~~~~~
    1 error generated.
    
    llvm-svn: 115374
    3be167f6
Loading