This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Add -msse2 to test vector for x86 and add 32byte vector tests


On Thu, Jun 12, 2008 at 12:35 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Thu, Jun 12, 2008 at 1:05 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>
>> In 32bit, by default, SSE2 may not be enabled. Without SSE2, we aren't
>> really testing SSE vector ABI. This patch adds -msse2 for x86. I also
>> include 32byte vector tests. I added them, assuming those tests
>> will only be used for gcc 3.5 or newer.
>
> Please note that this is a runtime test, and using SSE2 insns without
> runtime check for required target feature will fail at runtime. OTOH,
> generic vectors will "just work" even without -msse2 on x86_32 and we
> will still exercise SSE vector ABI on x86_64, where -msse2 is the
> default.
>
> Uros.
>

Here is an updated patch.  We should also test SSE ABI for 32bit.
I added dg-do and dg-skip-if support to compat.exp. I also enable
gcc.dg/compat/union-m128-1_main.c for ia32.  OK for trunk?

Thanks.

-- 
H.J.
---
2008-06-12  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.dg/compat/struct-layout-1_generate.c (vector_types): Add
	v32qi, v16hi, v8si, v4di, v8sf, v4df, u32qi, u16hi, u8si, u4di,
	u8sf and u4df.

	* gcc.dg/compat/union-m128-1_main.c: Run only on x86.  Remove
	__x86_64__ check.  Include "cpuid.h".
	(main): Check SSE2 at runtime.

	* gcc.dg/compat/union-m128-1_x.c: Compile with -msse2. Remove
	__x86_64__ check.
	* gcc.dg/compat/union-m128-1_y.c: Likewise.

	* gcc.dg/compat/vector-1_x.c: Add 32byte vector tests.
	* gcc.dg/compat/vector-1_y.c: Likewise.

	* gcc.dg/compat/vector-2_x.c: Skip x86.  Add 32byte vector tests.
	* gcc.dg/compat/vector-2_y.c: Likewise.

	* gcc.dg/compat/vector-1_main.c: Skip x86.
	* gcc.dg/compat/vector-2_main.c: Likewise.

	* gcc.dg/compat/vector-1a_main.c: New.
	* gcc.dg/compat/vector-1a_x.c: Likewise.
	* gcc.dg/compat/vector-1a_y.c: Likewise.
	* gcc.dg/compat/vector-2a_main.c: Likewise.
	* gcc.dg/compat/vector-2a_x.c: Likewise.
	* gcc.dg/compat/vector-2a_y.c: Likewise.

	* gcc.dg/compat/vector-defs.h (v32qi): New.
	(v16hi): Likewise.
	(v8si): Likewise.
	(v4di): Likewise.
	(v8sf): Likewise.
	(v4df): Likewise.
	(u32qi): Likewise.
	(u16hi): Likewise.
	(u8si): Likewise.
	(u4di): Likewise.
	(u8sf): Likewise.
	(u4df): Likewise.

	* lib/compat.exp (compat-get-options-main): Support dg-do
	and dg-skip-if.

Attachment: gcc-compat-1.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]