On Wed, 2023-09-06 at 18:45 +0800, Xiaolong Chen wrote: > + *((int*)& __m128_op0[3]) = 0x004200a0; > + *((int*)& __m128_op0[2]) = 0x00000000; > + *((int*)& __m128_op0[1]) = 0x004200a0; > + *((int*)& __m128_op0[0]) = 0x00200001;
These are aliasing rule violation and they will suddenly blow up when GCC optimizer starts to optimize more aggressively based on the aliasing rule. Try not to use these (you can write a helper function to memcpy() into a __m128). Or use -fno-strict-alising in dg-options. -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University