temp file turd left behind in odd case...

John-Mark Gurney jmg at funkthat.com
Tue Jan 15 19:35:50 UTC 2013


If you try to compile the following file:
#include <wmmintrin.h>

__m128i
bar(__m128i a, __m128i b)
{
        return _mm_aesenc_si128(a, b);
}

w/ the command:
clang -D__AES__ -c intrintest.c

You'll get the error:
fatal error: error in backend: Cannot select: intrinsic %llvm.x86.aesni.aesenc

and a intrintest.o-XXXXXXXX temp file left behind from the failed compile...

Yes, the correct way to enable the AES instructions is with the -maes
option, but I didn't know that at the time...  Looks like clang doesn't
fully clean up in this case...

I tried this on MacOSX's clang, but the smmintrin.h header prevents me
from compiling w/ the error:
In file included from /usr/bin/../lib/clang/2.1/include/wmmintrin.h:31:
/usr/bin/../lib/clang/2.1/include/smmintrin.h:28:2: error: #error "SSE4.1
      instruction set not enabled"
#error "SSE4.1 instruction set not enabled"

It'd be nice if -maes and related SSE enabling options were documented
in the man page... :)

P.S. Not on the list, so CC me if necessary.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-toolchain mailing list