I use __stosq in a wrapper:
__inline void set8 (unsigned long long val,void *dstp,int count) {__stosq(dstp,val,count);}
I call it like this:
set8 (0x0203040506070809,buffer,sizeof(buffer)/8);
and get:
C:\Software\Projects\x86-64\sredump\sredump.c(24): warning #3110: [asm] Integer value too large for 32 bits.
This is because the intrinsic has the second parameter declared as eax (or at least tries to fit 0x0203040506070809 into eax) istdo rax.