An unknown bug in my simple inline assembly code :     inline void addition(double * x, const double * vx,uint32_t size){
    	/*for (uint32_t i=0;i<size;++i){
    		x[i] = x[i] + vx[i];
    	}*/
        __asm__ __volatile__ (
       	"1: \n\t" 
    
    	"vmovupd	-32(%0), %%ymm1\n\t"
    	"vmovupd	(%0), %%ymm0\n\t"
    	"vaddpd		-32(%1), %%ymm0, %%ymm0\n\t"
    	"vaddpd		(%1), %%ymm1, %%ymm1\n\t"
    
    	"vmovupd	%%ymm0, -32(%0)\n\t"
    	"vmovupd	%%ymm1, (%0)\n\t"
    
    	"addq	$128, %0\n\t"
    	"addq	$128, %1\n\t"
    
    	"addl	$-8, %2\n\t"
    	"jne	1b"
    	    : 
            : "r" (x),"r"(vx),"r"(size)
            : "ymm0", "ymm1"
    	);
    }

I am practicing assembly(AVX instructions) right now so I write the above piece of code in inline assembly to replace the c code in the original function(which is commented out). The compiling process is successful but when I try to run the program, An error happens: `Bus error: 10`
Any thoughts to this bug? I didn't know what's wrong here. The compiler version is clang 602.0.53. Thank you!