Hi,
Starting with r11-165-eb72dc663e9 which converted DECL_GIMPLE_REG_P to
DECL_NOT_GIMPLE_REG_P we have failing BRIG testcase:
-PASS: packed.hsail.brig scan-tree-dump gimple "_[0-9]+ = q2 \\+ q3;"
-PASS: packed.hsail.brig scan-tree-dump gimple "= VEC_PERM_EXPR
<new_output.[0-9]+_[0-9]+, [a-z0-9_]+, { 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31 }>;"
+FAIL: packed.hsail.brig scan-tree-dump gimple "_[0-9]+ = q2 \\+ q3;"
+FAIL: packed.hsail.brig scan-tree-dump gimple "= VEC_PERM_EXPR
<new_output.[0-9]+_[0-9]+, [a-z0-9_]+, { 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31 }>;"
because the gimplifier is now smarter and generates nicer code, which
however, does not match the regexp in the testsuite:
--- before/packed.hsail.brig.005t.gimple 2020-05-12 17:59:26.434305513
+0200
+++ after/packed.hsail.brig.005t.gimple 2020-05-12 17:52:34.477055987 +0200
@@ -109,277 +109,267 @@
q2 = q1 + _24;
_25 = VEC_PERM_EXPR <q1, q1, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0 }>;
q3 = q2 + _25;
- _26 = q2 + q3;
- new_output.11 = _26;
- new_output.21_27 = new_output.11;
- _28 = VEC_PERM_EXPR <new_output.21_27, q4, { 0, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31 }>;
- s_output.12 = _28;
+ new_output.11 = q2 + q3;
+ s_output.12 = VEC_PERM_EXPR <new_output.11, q4, { 0, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31 }>;
q4 = s_output.12;
I have looked at the SSA dump and verified that the variable in
question is a gimple register because it gets its SSA name. I have
not looked into why the gimplifier previously thought it had to go
through the additional temporaries though.
Tested with make -k check-brig. Pushed to master.
* brig.dg/test/gimple/packed.hsail: Fix scan dump patterns.
---
gcc/testsuite/ChangeLog | 4 ++++
gcc/testsuite/brig.dg/test/gimple/packed.hsail | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dfb92ec5748..58521437e2d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2020-05-25 Martin Jambor <[email protected]>
+
+ * brig.dg/test/gimple/packed.hsail: Fix scan dump patterns.
+
2020-05-25 Richard Biener <[email protected]>
PR tree-optimization/95308
diff --git a/gcc/testsuite/brig.dg/test/gimple/packed.hsail
b/gcc/testsuite/brig.dg/test/gimple/packed.hsail
index 9137490b2ab..1e2bb53de0d 100644
--- a/gcc/testsuite/brig.dg/test/gimple/packed.hsail
+++ b/gcc/testsuite/brig.dg/test/gimple/packed.hsail
@@ -61,10 +61,10 @@ prog kernel &Kernel(kernarg_u64 %input_ptr, kernarg_u64
%output_ptr)
/* For the add_ss we assume performing the computation over the whole vector
is cheaper than */
/* extracting the scalar and performing a scalar operation. This aims to stay
in the vector
/* datapath as long as possible. */
-/* { dg-final { scan-tree-dump "_\[0-9\]+ = q2 \\\+ q3;" "gimple" } } */
+/* { dg-final { scan-tree-dump "new_output.\[0-9\]+ = q2 \\\+ q3;" "gimple" }
} */
/* Insert the lowest element of the result to the lowest element of the result
register. */
-/* { dg-final { scan-tree-dump "= VEC_PERM_EXPR <new_output.\[0-9\]+_\[0-9\]+,
\[a-z0-9_\]+, { 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
}>;" "gimple" } } */
+/* { dg-final { scan-tree-dump "= VEC_PERM_EXPR <new_output.\[0-9\]+,
\[a-z0-9_\]+, { 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
}>;" "gimple" } } */
/* FIXME */
/* { dg-final { scan-tree-dump "q4 =
\(VIEW_CONVERT_EXPR<uint128_t>\\\()?s_output.\[0-9\]+\(_\[0-9\]+\)*\\\)?;"
"gimple" } } */
--
2.26.2