[Bug target/56298] wmmintrin.h aborts compilation on the machines without AES
piotr.wyderski at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Feb 12 17:22:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56298
--- Comment #9 from Piotr Wyderski <piotr.wyderski at gmail dot com> 2013-02-12 17:22:08 UTC ---
(In reply to comment #8)
> Compiling that with icc -S t.c results in
>
> f:
> # parameter 1: %xmm0
> # parameter 2: %xmm1
> ..B1.1: # Preds ..B1.0
> ..___tag_value_f.1: #3.33
> aesenc %xmm1, %xmm0 #5.16
> ret #5.16
So it seems that ICC and MSVC are in one team here, while
GCC and CLang/LLVM are in the other. And since I consider
ICC the one to be followed, as the *mmintrin.h files are provided
in GCC for exactly that purpose, the conclusion is that GCC
behaves in a wrong way.
Jakub: you are right, the __builtin_* functions are not expected
to be available when the target does not support them. But intrinsics
are not like that and ultimately it is the (wrong) choice of a
GCC implementer to base the intrinsic functions' implementation
on builtins. Inline assembly would not cause such a problem.
Just to be clear: I am perfectly aware how hard would it be to
reimplement the intrinsics from scratch, but there *is* a problem.
More information about the Gcc-bugs
mailing list