diff options
author | Changpeng Fang <changpeng.fang@amd.com> | 2011-03-04 17:56:39 +0000 |
---|---|---|
committer | Changpeng Fang <cfang@gcc.gnu.org> | 2011-03-04 17:56:39 +0000 |
commit | d9c642462049486d1dbf560686723313193baf43 (patch) | |
tree | 3c50e34a6c3fd630527aee6807e1f3d67a274f6f | |
parent | 7a9d7a4f865490d0972a07dc4d8ae2de6b2c5a27 (diff) | |
download | gcc-d9c642462049486d1dbf560686723313193baf43.zip gcc-d9c642462049486d1dbf560686723313193baf43.tar.gz gcc-d9c642462049486d1dbf560686723313193baf43.tar.bz2 |
Introduce flag -mprefer-avx128 for the auto-vectorizer to generate only 128-bit avx insns.
* config/i386/i386.opt (mprefer-avx128): New flag.
* config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit mode
when the flag -mprefer-avx128 is on.
From-SVN: r170681
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.opt | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 838b8ce..ec81d68 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-03-04 Changpeng Fang <changpeng.fang@amd.com> + + * config/i386/i386.opt (mprefer-avx128): New flag. + * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit mode + when the flag -mprefer-avx128 is on. + 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org> * dwarf2out.c (compare_loc_operands): Fix address handling. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index aa59ada..82d999b 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -34747,9 +34747,9 @@ ix86_preferred_simd_mode (enum machine_mode mode) switch (mode) { case SFmode: - return TARGET_AVX ? V8SFmode : V4SFmode; + return (TARGET_AVX && !flag_prefer_avx128) ? V8SFmode : V4SFmode; case DFmode: - return TARGET_AVX ? V4DFmode : V2DFmode; + return (TARGET_AVX && !flag_prefer_avx128) ? V4DFmode : V2DFmode; case DImode: return V2DImode; case SImode: diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index 85362d7..0563bc1 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -266,6 +266,10 @@ Target RejectNegative Var(flag_dispatch_scheduler) Do dispatch scheduling if processor is bdver1 and Haifa scheduling is selected. +mprefer-avx128 +Target Report Var(flag_prefer_avx128) Init(0) +Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer. + ;; ISA support m32 |