Posted to tcl by auriocus at Thu Nov 27 07:41:42 GMT 2014view pretty

for (int i=0; i<length; i++) {
				/*const double x=(*temp1ptr);
				
				const double y=(*temp2ptr);
				  (*temp7ptr) = (*temp1ptr)*(*temp1ptr)+(*temp2ptr)*(*temp2ptr)+(*temp1ptr)*(*temp2ptr); */
			/*	double temp3; double temp4; double temp5; double temp6;
				temp6 = (*temp1ptr)*(*temp2ptr);
				temp4 = (*temp2ptr)*(*temp2ptr);
				temp3 = (*temp1ptr)*(*temp1ptr);
				temp5 = temp3+temp4;
				(*temp7ptr) = temp5+temp6; */
				double x=(*temp1ptr);
				double y=(*temp2ptr);
				double result;

				 /* (*temp7ptr) = x*x+y*y+x*y; */

				asm ( "movsd %0, %%xmm0\n"
					"movsd %1, %%xmm1\n"
					"movsd %%xmm0, %%xmm3\n"
					"mulsd %%xmm0, %%xmm3\n"
					"movsd %%xmm1, %%xmm2\n"
					"mulsd %%xmm1, %%xmm2\n"
					"addsd %%xmm3, %%xmm2\n"
					"movsd %%xmm2, %2\n" : "=m"(x), "=m"(y)
					: "m"(result)
					: "xmm0", "xmm1", "xmm2", "xmm3"
				);
					*temp7ptr++=result;
				temp1ptr += temp1pitch; 
				temp2ptr += temp2pitch; 
			};