summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2022-01-01 08:44:48 +0000
committerAndrew Pinski <apinski@marvell.com>2022-01-01 08:47:25 +0000
commit5fa4f982636e7e66eee6a9b45cc0939ae95b4659 (patch)
treea7ad7fca9fd695ae0fb06639cd6b98af126906ff
parent7918d8270a43e42b0cba902ec17ce87b6a3c74a9 (diff)
Committed: Add testcases for a few PRs
These were fixed as part of the fix for PR 99766, I thought it would be useful to add a few testcases for the other cases that were failing. Committed as obvious after running the tests to make sure they work. PR rtl-optimization/100241 PR rtl-optimization/99787 gcc/testsuite/ChangeLog: * gcc.c-torture/compile/pr100241-1.c: New test. * gcc.c-torture/compile/pr99787-1.c: New test.
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr100241-1.c48
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr99787-1.c18
2 files changed, 66 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr100241-1.c b/gcc/testsuite/gcc.c-torture/compile/pr100241-1.c
new file mode 100644
index 00000000000..593ef96bdb7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr100241-1.c
@@ -0,0 +1,48 @@
+/* { dg-require-visibility "" } */
+/* { dg-options "-fvisibility=internal -fPIC" { target fpic } } */
+
+extern char num_4x4_blocks_high_lookup, num_4x4_blocks_wide_lookup,
+ vp9_foreach_transformed_block_in_plane_xd_0_0_0;
+int vp9_first_pass_encode_tile_mb_row_cpi_0,
+ vp9_first_pass_encode_tile_mb_row_tile_data_0_0, vp9_encode_sby_pass1_x;
+typedef void foreach_transformed_block_visitor();
+void vp9_encode_sby_pass1();
+typedef struct {
+ long coded_error;
+ long sr_coded_error;
+ long frame_noise_energy;
+ long intra_error;
+} FIRSTPASS_DATA;
+typedef struct {
+ FIRSTPASS_DATA fp_data;
+} TileDataEnc;
+TileDataEnc accumulate_fp_mb_row_stat_this_tile;
+void vp9_first_pass_encode_tile_mb_row(FIRSTPASS_DATA *fp_acc_data) {
+ int mb_col_end = vp9_first_pass_encode_tile_mb_row_tile_data_0_0;
+ for (; mb_col_end;) {
+ vp9_encode_sby_pass1();
+ if (vp9_first_pass_encode_tile_mb_row_cpi_0) {
+ FIRSTPASS_DATA __trans_tmp_1 = *fp_acc_data;
+ accumulate_fp_mb_row_stat_this_tile.fp_data.coded_error +=
+ accumulate_fp_mb_row_stat_this_tile.fp_data.sr_coded_error +=
+ __trans_tmp_1.sr_coded_error;
+ accumulate_fp_mb_row_stat_this_tile.fp_data.frame_noise_energy +=
+ __trans_tmp_1.frame_noise_energy;
+ accumulate_fp_mb_row_stat_this_tile.fp_data.intra_error +=
+ __trans_tmp_1.intra_error;
+ }
+ }
+}
+foreach_transformed_block_visitor vp9_foreach_transformed_block_in_plane_visit;
+void vp9_foreach_transformed_block_in_plane(void *arg) {
+ int c, max_blocks_wide = num_4x4_blocks_wide_lookup;
+ for (; num_4x4_blocks_high_lookup;) {
+ c = 0;
+ for (; c < max_blocks_wide;
+ c += vp9_foreach_transformed_block_in_plane_xd_0_0_0)
+ vp9_foreach_transformed_block_in_plane_visit(arg);
+ }
+}
+void vp9_encode_sby_pass1() {
+ vp9_foreach_transformed_block_in_plane(&vp9_encode_sby_pass1_x);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c b/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
new file mode 100644
index 00000000000..d98b7e746be
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
@@ -0,0 +1,18 @@
+/* { dg-options "-ftree-slp-vectorize -ffp-contract=on -ffloat-store" } */
+
+_Complex foo_x_0;
+int foo_n11, foo_i, foo_l;
+_Complex float foo_s;
+_Complex *foo_f_0_0_0;
+
+void
+foo() {
+ _Complex f[foo_l];
+ for (; foo_i; foo_i++) {
+ int n9;
+ for (; n9 < foo_l; n9++)
+ for (; foo_n11; foo_n11++)
+ foo_s += foo_f_0_0_0[n9] * 0 * foo_f_0_0_0[foo_n11];
+ foo_x_0 += foo_s;
+ }
+}