--- /dev/null
+/* PR tree-optimization/123656 */
+/* { dg-do run } */
+/* { dg-options "-Og -Wno-psabi" } */
+
+#define C 210
+
+typedef __attribute__((__vector_size__ (2))) unsigned char V;
+
+V
+foo (V v)
+{
+ return v * C;
+}
+
+int
+main ()
+{
+ V x = foo ((V) {1, 1});
+ if (x[0] != C || x[1] != C)
+ __builtin_abort ();
+}
LSHIFT_EXPR);
break;
case alg_add_t_m2:
- tmp_var = add_shift (gsi, vectype, op0, shifts, LSHIFT_EXPR);
+ tmp_var = add_shift (gsi, vectype, op0, shifts, LSHIFT_EXPR);
accumulator = gimplify_build2 (gsi, PLUS_EXPR, vectype, tmp_var,
- accumulator);
+ accumulator);
break;
case alg_sub_t_m2:
tmp_var = add_shift (gsi, vectype, op0, shifts, LSHIFT_EXPR);
tmp_var = add_shift (gsi, vectype, accumulator, shifts,
LSHIFT_EXPR);
accumulator = gimplify_build2 (gsi, MINUS_EXPR, vectype,
- accumulator, tmp_var);
+ tmp_var, accumulator);
break;
default:
gcc_unreachable ();