]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/115764 - testcase for BB SLP issue
authorRichard Biener <rguenther@suse.de>
Wed, 3 Jul 2024 07:05:06 +0000 (09:05 +0200)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 3 Jul 2024 07:16:28 +0000 (09:16 +0200)
The following adds a testcase for a CSE issue with BB SLP two operator
handling when we make those CSE aware by providing SLP_TREE_SCALAR_STMTS
for them.  This was reduced from 526.blender_r.

PR tree-optimization/115764
* gcc.dg/vect/bb-slp-76.c: New testcase.

gcc/testsuite/gcc.dg/vect/bb-slp-76.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-76.c b/gcc/testsuite/gcc.dg/vect/bb-slp-76.c
new file mode 100644 (file)
index 0000000..b3b6a58
--- /dev/null
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-ffast-math" } */
+
+typedef struct {
+  float xmin, xmax;
+} rctf;
+int U_0;
+float BLI_rctf_size_x_rct_1, view_zoomdrag_apply_dx;
+void *view_zoomdrag_apply_op_0;
+float RNA_float_get();
+typedef struct {
+  rctf cur;
+} View2D;
+typedef struct {
+  View2D v2d;
+} v2dViewZoomData;
+void view_zoomdrag_apply() {
+  v2dViewZoomData *vzd = view_zoomdrag_apply_op_0;
+  View2D *v2d = &vzd->v2d;
+  view_zoomdrag_apply_dx = RNA_float_get();
+  if (U_0) {
+    float mval_fac = BLI_rctf_size_x_rct_1, mval_faci = mval_fac,
+          ofs = mval_faci * view_zoomdrag_apply_dx;
+    v2d->cur.xmin += ofs + view_zoomdrag_apply_dx;
+    v2d->cur.xmax += ofs - view_zoomdrag_apply_dx;
+  } else {
+    v2d->cur.xmin += view_zoomdrag_apply_dx;
+    v2d->cur.xmax -= view_zoomdrag_apply_dx;
+  }
+}