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.
Tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/115764 * gcc.dg/vect/bb-slp-76.c: New testcase. --- gcc/testsuite/gcc.dg/vect/bb-slp-76.c | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/vect/bb-slp-76.c 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 index 00000000000..b3b6a58e7c7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-76.c @@ -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; + } +} -- 2.35.3