On 06/25/2012 05:21 PM, Jason Garrett-Glaser wrote: >> + mova m0, [srcq ] ; m0 = 0, 1, 2, 3, 4, 5, 6, 7 >> > + mova m1, [srcq+ mmsize] ; m1 = 8, 9, 10, 11, 12, 13, 14, 15 >> > + mova m2, [srcq+2*mmsize] ; m2 = 16, 17, 18, 19, 20, 21, 22, 23 >> > + movhlps m3, m1 >> > + movlhps m3, m2 ; m3 = 12, 13, 14, 15, 16, 17, 18, 19 >> > + movlhps m1, m1 >> > + movhlps m1, m0 ; m1 = 4, 5, 6, 7, 8, 9, 10, 11 > Using more loads (and fewer shuffles) might be better here, e.g: > > mova m0, [srcq ] > mova m2, [srcq+2*mmsize] > movq m3, [srcq + mmsize + mmsize/2] > movlhps m3, m2 > movq m1, [srcq+ mmsize] > movhlps m1, m0 > > One more load, two less shuffles, the load is probably free. >
That is not equivalent for m1. I think it would have to use movhpd instead of movq for the load. But I'll try that and see how it compares. -Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
