Hi, On Linux/x86-64, when we pass
RUNTESTFLAGS="--target_board='unix{-mx32}'" to GCC tests, we can't check lp64/ilp32 for availability of 64bit x86 instructions. This patch adds ia32 and x32 effetive targets. OK for trunk? Thanks. H.J. --- 2011-07-07 H.J. Lu <hongjiu...@intel.com> * lib/target-supports.exp (check_effective_target_ia32): New. (check_effective_target_x32): Likewise. (check_effective_target_vect_cmdline_needed): Also check x32. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 7db156f..b5b8782 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1512,6 +1512,28 @@ proc check_effective_target_ilp32 { } { }] } +# Return 1 if we're generating ia32 code using default options, 0 +# otherwise. + +proc check_effective_target_ia32 { } { + return [check_no_compiler_messages ia32 object { + int dummy[sizeof (int) == 4 + && sizeof (void *) == 4 + && sizeof (long) == 4 ? 1 : -1] = { __i386__ }; + }] +} + +# Return 1 if we're generating x32 code using default options, 0 +# otherwise. + +proc check_effective_target_x32 { } { + return [check_no_compiler_messages x32 object { + int dummy[sizeof (int) == 4 + && sizeof (void *) == 4 + && sizeof (long) == 4 ? 1 : -1] = { __x86_64__ }; + }] +} + # Return 1 if we're generating 32-bit or larger integers using default # options, 0 otherwise. @@ -1713,7 +1735,8 @@ proc check_effective_target_vect_cmdline_needed { } { if { [istarget alpha*-*-*] || [istarget ia64-*-*] || (([istarget x86_64-*-*] || [istarget i?86-*-*]) - && [check_effective_target_lp64]) + && ([check_effective_target_x32] + || [check_effective_target_lp64])) || ([istarget powerpc*-*-*] && ([check_effective_target_powerpc_spe] || [check_effective_target_powerpc_altivec]))