+2018-06-15 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/86159
+ * tree-cfg.c (gimplify_build3): Do not strip sign conversions,
+ leave useless conversion stripping to force_gimple_operand_gsi.
+ (gimplify_build2): Likewise.
+ (gimplify_build1): Likewise.
+
2018-06-15 Richard Biener <rguenther@suse.de>
PR middle-end/86076
--- /dev/null
+// { dg-do compile }
+// { dg-options "-O -w -Wno-psabi" }
+
+typedef int vec __attribute__((vector_size(32)));
+vec fn1()
+{
+ vec x, zero{};
+ vec one = zero + 1;
+ return x < zero ? one : zero;
+}
location_t loc = gimple_location (gsi_stmt (*gsi));
ret = fold_build3_loc (loc, code, type, a, b, c);
- STRIP_NOPS (ret);
-
return force_gimple_operand_gsi (gsi, ret, true, NULL, true,
GSI_SAME_STMT);
}
tree ret;
ret = fold_build2_loc (gimple_location (gsi_stmt (*gsi)), code, type, a, b);
- STRIP_NOPS (ret);
-
return force_gimple_operand_gsi (gsi, ret, true, NULL, true,
GSI_SAME_STMT);
}
tree ret;
ret = fold_build1_loc (gimple_location (gsi_stmt (*gsi)), code, type, a);
- STRIP_NOPS (ret);
-
return force_gimple_operand_gsi (gsi, ret, true, NULL, true,
GSI_SAME_STMT);
}