Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6711 Discussions

AES Instruction set usage with gcc 4.4.3 20100105 error

vid_sid
Beginner
361 Views
Hello,

I installed gcc 4.4.3 on a RH x86-64 host 2.6.18-92.0.0.0.1.el5. The CPUs are Intel Xeon E5335 -- which dont support the new AES instruction set. For this, I downloaded and installed the Intel SDE 2.9.4.

I verified with the simulator that the 'Check_CPU_support_AES()' function returns corectly i.e the simulator confirms that the bit #25 is set :

__cpuid(1, a,b,c,d);

if (c & 0x2000000 != 0) {

// AES support is there

}

Next I tried to compile the code in the gcc test suite that tests aeskeygenassist -- this is basically the gcc test program aeskeygenassist.c where calls to the _mm_aeskeygenassist_si128 intrinsic is being made.

/usr/local/bin/gcc -c -maes -msse4.1 -mpclmul aeskeygenassist-test.c gives me this error:

/tmp/cc1LSyUf.s: Assembler messages:
/tmp/cc1LSyUf.s:106: Error: no such instruction: `aeskeygenassist $1,%xmm0,%xmm0'

Are my gcc compile flags correct?

Thanks,

Sri

0 Kudos
2 Replies
Vladimir_Dudnik
Employee
361 Views

Hello Sri,

Please refer to gcc documentation if that support these new AES instructions and intrinsics. It seems it does not. I would recommend you to try the latest version of Intel C/C++ compiler (youmay needalso check with documentation on the correct compiler options)

Regards,
Vladimir

0 Kudos
vid_sid
Beginner
361 Views

Hi Vladimir,

Thank you for your pointers. icc 11.1 works like a charm and I agree that this should be the compiler for AES NI.

Best,

sri

0 Kudos
Reply