aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2011-12-13 12:07:01 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-12-13 12:07:01 -0800
commitb826bea7f3a828f9a8d23a0828572452101ced42 (patch)
treeb51ff1980c56c199511e2a406274c144de43fd81 /gcc/fold-const.c
parent38a53a0e25ac25724fae62ec6c340337805e6bc8 (diff)
downloadgcc-b826bea7f3a828f9a8d23a0828572452101ced42.zip
gcc-b826bea7f3a828f9a8d23a0828572452101ced42.tar.gz
gcc-b826bea7f3a828f9a8d23a0828572452101ced42.tar.bz2
Revert two unintended commits
From-SVN: r182301
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 89c68cf..a32ea90 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -13503,6 +13503,8 @@ fold_binary_loc (location_t loc,
case VEC_EXTRACT_EVEN_EXPR:
case VEC_EXTRACT_ODD_EXPR:
+ case VEC_INTERLEAVE_HIGH_EXPR:
+ case VEC_INTERLEAVE_LOW_EXPR:
if ((TREE_CODE (arg0) == VECTOR_CST
|| TREE_CODE (arg0) == CONSTRUCTOR)
&& (TREE_CODE (arg1) == VECTOR_CST
@@ -13520,6 +13522,14 @@ fold_binary_loc (location_t loc,
case VEC_EXTRACT_ODD_EXPR:
sel[i] = i * 2 + 1;
break;
+ case VEC_INTERLEAVE_HIGH_EXPR:
+ sel[i] = (i + (BYTES_BIG_ENDIAN ? 0 : nelts)) / 2
+ + ((i & 1) ? nelts : 0);
+ break;
+ case VEC_INTERLEAVE_LOW_EXPR:
+ sel[i] = (i + (BYTES_BIG_ENDIAN ? nelts : 0)) / 2
+ + ((i & 1) ? nelts : 0);
+ break;
default:
gcc_unreachable ();
}