> >> On 11/14/2022 10:30 AM, Wang, Bin wrote: > >>>> By using xmm# you're not taking into account any x86inc SWAPing, so > >>>> this is using xmm0 and xmm1 where the single scalar float input > >>>> arguments reside (at least on unix64), instead of xm0 and xm1 > >>>> (xmm16 and xmm17) where the broadcasted scalars were stored. > >>>> This, again, only worked by chance on unix64 because you're using > >>>> scalar fmadd, and shouldn't work at all on win64. > >>>> > >>>> Also, all these as is are being encoded as VEX, not EVEX, but it > >>>> should be fine leaving them untouched instead of using xm#, since > >>>> they will be shorter (five bytes instead of six for some) by using > >>>> the lower, > >> non callee-saved regs. > >>> > >>> Thanks for the help. I'm not familiar with WIN64 asm. So what I need > >>> to do is > >> change the WIN64 swap from: > >>> SWAP xmm0, xmm2 > >>> SWAP xmm1, xmm3 > >>> To: > >>> VBROADCASTSS m0, xmm2 > >>> VBROADCASTSS m1, xmm3 > >>> > >>> Is that correct? > >> > >> Yes, that will ultimately broadcast the two scalars in xmm2 and xmm3 > >> to > >> zmm16 and zmm17. > >> After that what you need to do is either change the fmaddss > >> instruction to use > >> xm0 and xm1 macros instead of xmm0 and xmm1 (so xmm16 and xmm17 > with > >> EVEX encoding is used), or much like the broadcast above use xmm2 and > >> xmm3 explicitly on win64, so it remains VEX encoded. > > > > So, to fix the issue, does this 2 changes looks good for you? > > First change the WIN64 swap from: > > SWAP xmm0, xmm2 > > SWAP xmm1, xmm3 > > To: > > VBROADCASTSS m0, xmm2 > > VBROADCASTSS m1, xmm3 > > > > Second change the fmaddss from: > > fmaddss xmm4, xmm4, xmm0, xmm1 > > To: > > fmaddss xmm4, xmm4, xm0, xm1 > > Yes.
Appreciate for your help, I commit new patch here: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20221114143551.9740-1-bin.w...@intel.com/ > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org > with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".