On Thu, 2023-08-31 at 20:48 +0800, Yang Yujie wrote: > * Support options for LoongArch SIMD extensions: > new configure options --with-simd={none,lsx,lasx}; > new compiler option -msimd={none,lsx,lasx}; > new driver options -m[no]-l[a]sx.
Hmm... In my build (a cross compiler configured with ../gcc/configure -- target=loongarch64-linux-gnu --with-system-zlib) I have: $ cat lasx.c int x __attribute__((vector_size(32))); int y __attribute__((vector_size(32))); void test(void) { x += y; } $ gcc/cc1 lasx.c -msimd=lasx -o- -nostdinc -mexplicit-relocs -O2 ... ... pcalau12i $r12,%pc_hi20(.LANCHOR0) addi.d $r12,$r12,%pc_lo12(.LANCHOR0) xvld $xr0,$r12,0 xvld $xr1,$r12,32 xvadd.w $xr0,$xr0,$xr1 xvst $xr0,$r12,0 jr $r1 ... ... This seems perfectly fine. But: $ gcc/xgcc -B gcc lasx.c -mlasx -o- -nostdinc -mexplicit-relocs -O2 -S ... ... test: .LFB0 = . pcalau12i $r12,%pc_hi20(.LANCHOR0) addi.d $r12,$r12,%pc_lo12(.LANCHOR0) addi.d $r3,$r3,-16 .LCFI0 = . st.d $r23,$r3,8 .LCFI1 = . ldptr.w $r7,$r12,0 ldptr.w $r23,$r12,32 ldptr.w $r6,$r12,8 ... ... (no SIMD instructions) Is this a bug in the driver or I missed something? -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University