https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107304
--- Comment #21 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #20)
> This is the opposite of PR 80583.
Like this
diff --git a/gcc/expr.cc b/gcc/expr.cc
index 4c892d69249..b4e1ec9dbe7 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -7898,8 +7898,7 @@ get_inner_reference (tree exp, poly_int64_pod *pbitsize,
/* For vector fields re-check the target flags, as DECL_MODE
could have been set with different target flags than
the current function has. */
- if (mode == BLKmode
- && VECTOR_TYPE_P (TREE_TYPE (field))
+ if (VECTOR_TYPE_P (TREE_TYPE (field))
&& VECTOR_MODE_P (TYPE_MODE_RAW (TREE_TYPE (field))))
mode = TYPE_MODE (TREE_TYPE (field));
}