静态数组的首地址(32Byte)对齐编译器能够保证,打印出来也是,做加零偏移的处理 i=0; simd_load(va,a[0][2]+i);就可以;而simd_load(va,a[0[[2])总是执行报错不对齐。我是做vshff轮换,循环外那个初始赋值就是数组指针的首地址,但不加这个0偏移就报错,后来包括循环外的初始赋值我全写成+i(i=0)的形式(当然了循环内天然有偏移所以一直就没问题) i=0; ii=0; simd_load(va[0],a[m][n]+i); for(i=0;i<<nx;i+=4) { cur=(ii&1); ii++; nex=(ii&1); simd_load(va[0+nex],a[m][n]+i+4); vtmp=simd_vshff(va[0+nex],va[0+cur],0x4E); v_r=simd(vtmp, va[0+cur]); ... }