19.11.2014 16:16, Bruce Richardson ?????:
> On Tue, Nov 18, 2014 at 04:36:24PM -0500, Neil Horman wrote:
>> an alternate option would be to not use the intrinsic, and craft some 
>> explicit
>> __asm__ statement that executes the right sse42 instructions.  That way the 
>> asm
>> is directly emitted, without requiring the -msse42 flag at all, and it will 
>> just
>> work in all the files that call it.
>>
> I really don't like that approach. I think using intrinsics is much more 
> maintainable.
>

static inline uint32_t
crc32_sse42_u32(uint32_t data, uint32_t init_val)
{
/*??__asm__ volatile(
????????????"crc32l %[data], %[init_val];"
????????????: [init_val] "+r" (init_val)
????????????: [data] "rm" (data));
????return init_val;*/

But wait, will __builtin_ia32_crc32si and __builtin_ia32_crc32di
functions do the trick? ICC has them?
What about prototyping functions and extracting their bodies to separate
module? Does it break anything?

-- 
Sincerely,

Yerden Zhumabekov
State Technical Service
Astana, KZ

Reply via email to