diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2018-06-27 12:33:24 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2018-10-02 11:07:15 +0000 |
commit | 18700cbbfa7b2c0a8a21947b01fae1748bbdcae2 (patch) | |
tree | bbbecedfb4235fe5a474728df7442a1c3fd7e1e1 /gcc/expr.c | |
parent | 0378e2ec3fc15a72e543b336d1ea4d3677c569ef (diff) |
Merge branches/gcc-7-branch rev 262169.
Change-Id: Ia4e0d5dab9b29367e5f61b6ebd65fa0c318dda86
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 0d287ecbe68..f8964b84bef 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -5109,7 +5109,10 @@ expand_assignment (tree to, tree from, bool nontemporal) && bitpos == 0 && bitsize == mode_bitsize) result = store_expr (from, to_rtx, false, nontemporal, reversep); - else if (bitsize == mode_bitsize / 2 + else if (COMPLEX_MODE_P (GET_MODE (to_rtx)) + && (TYPE_MODE (TREE_TYPE (from)) + == GET_MODE_INNER (GET_MODE (to_rtx))) + && bitsize == mode_bitsize / 2 && (bitpos == 0 || bitpos == mode_bitsize / 2)) result = store_expr (from, XEXP (to_rtx, bitpos != 0), false, nontemporal, reversep); |