aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-11-05 12:53:39 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2010-11-05 05:53:39 -0700
commitd73ee4e74eb82f29e5949c13c6544b50d0f96d4c (patch)
tree699be373e4c6e336a681bdbc2e0329aab8120291 /gcc/config
parent8b7e852901472ee45e1b1e3c2dbfa410eb892290 (diff)
downloadgcc-d73ee4e74eb82f29e5949c13c6544b50d0f96d4c.zip
gcc-d73ee4e74eb82f29e5949c13c6544b50d0f96d4c.tar.gz
gcc-d73ee4e74eb82f29e5949c13c6544b50d0f96d4c.tar.bz2
Check 256bit AVX register in move expanders.
gcc/ 2010-11-05 H.J. Lu <hongjiu.lu@intel.com> Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if 256bit AVX register is used. (ix86_expand_vector_move_misalign): Likewise. (ix86_expand_vector_move): Replace use_avx256_p with VALID_AVX256_REG_MODE. gcc/testsuite/ 2010-11-05 H.J. Lu <hongjiu.lu@intel.com> * gcc.target/i386/avx-vzeroupper-19.c: New. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r166358
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 3558899..00febba 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -15000,6 +15000,9 @@ ix86_expand_move (enum machine_mode mode, rtx operands[])
rtx op0, op1;
enum tls_model model;
+ if (VALID_AVX256_REG_MODE (mode))
+ cfun->machine->use_avx256_p = true;
+
op0 = operands[0];
op1 = operands[1];
@@ -15144,7 +15147,7 @@ ix86_expand_vector_move (enum machine_mode mode, rtx operands[])
rtx op0 = operands[0], op1 = operands[1];
unsigned int align = GET_MODE_ALIGNMENT (mode);
- if (use_avx256_p (mode, NULL_TREE))
+ if (VALID_AVX256_REG_MODE (mode))
cfun->machine->use_avx256_p = true;
/* Force constants other than zero into memory. We do not know how
@@ -15253,6 +15256,9 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[])
{
rtx op0, op1, m;
+ if (VALID_AVX256_REG_MODE (mode))
+ cfun->machine->use_avx256_p = true;
+
op0 = operands[0];
op1 = operands[1];