temp file turd left behind in odd case...

Dimitry Andric dim at FreeBSD.org
Tue Jan 15 20:05:21 UTC 2013


On 2013-01-15 20:35, John-Mark Gurney wrote:
> 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...

Hm, weird... On i386, this simply produces errors about SSE2 not being
enabled, and a whole bunch of other errors and warnings.

On amd64, it does indeed produce the llvm backend error you have shown.
I will report this to upstream, but there is a good chance they will say
"don't do that then". :-)


> 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... :)

We don't maintain our own manpage, upstream produces either .rst or .pod
files, and manpages or other docs are generated from those.  Please send
any suggestions for documentation updates to one of the appropriate
upstream mailing lists for review.


More information about the freebsd-toolchain mailing list