aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2024-01-31 14:52:59 +0000
committerTamar Christina <tamar.christina@arm.com>2024-01-31 14:52:59 +0000
commitf7935beef7b02fbba0adf33fb2ba5c0a27d7e9ff (patch)
tree5d2c5b01d3ac0d294b13b0482d7881c7730dd7d0 /gcc
parent0a640455928a050315f6addd88ace5d945eba130 (diff)
downloadgcc-f7935beef7b02fbba0adf33fb2ba5c0a27d7e9ff.zip
gcc-f7935beef7b02fbba0adf33fb2ba5c0a27d7e9ff.tar.gz
gcc-f7935beef7b02fbba0adf33fb2ba5c0a27d7e9ff.tar.bz2
AArch64: relax cbranch tests to accepted inverted branches [PR113502]
Recently something in the midend had started inverting the branches by inverting the condition and the branches. While this is fine, it makes it hard to actually test. In RTL I disable scheduling and BB reordering to prevent this. But in GIMPLE there seems to be nothing I can do. __builtin_expect seems to have no impact on the change since I suspect this is happening during expand where conditions can be flipped regardless of probability during compare_and_branch. Since the mid-end has plenty of correctness tests, this weakens the backend tests to just check that a correct looking sequence is emitted. gcc/testsuite/ChangeLog: PR testsuite/113502 * gcc.target/aarch64/sve/vect-early-break-cbranch.c: Ignore exact branch. * gcc.target/aarch64/vect-early-break-cbranch.c: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c12
-rw-r--r--gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c12
2 files changed, 12 insertions, 12 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c b/gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
index d150535..d7cef11 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
@@ -9,7 +9,7 @@ int b[N] = {0};
** ...
** cmpgt p[0-9]+.s, p[0-9]+/z, z[0-9]+.s, #0
** ptest p[0-9]+, p[0-9]+.b
-** b.any \.L[0-9]+
+** b.(any|none) \.L[0-9]+
** ...
*/
void f1 ()
@@ -26,7 +26,7 @@ void f1 ()
** ...
** cmpge p[0-9]+.s, p[0-9]+/z, z[0-9]+.s, #0
** ptest p[0-9]+, p[0-9]+.b
-** b.any \.L[0-9]+
+** b.(any|none) \.L[0-9]+
** ...
*/
void f2 ()
@@ -43,7 +43,7 @@ void f2 ()
** ...
** cmpeq p[0-9]+.s, p[0-9]+/z, z[0-9]+.s, #0
** ptest p[0-9]+, p[0-9]+.b
-** b.any \.L[0-9]+
+** b.(any|none) \.L[0-9]+
** ...
*/
void f3 ()
@@ -60,7 +60,7 @@ void f3 ()
** ...
** cmpne p[0-9]+.s, p[0-9]+/z, z[0-9]+.s, #0
** ptest p[0-9]+, p[0-9]+.b
-** b.any \.L[0-9]+
+** b.(any|none) \.L[0-9]+
** ...
*/
void f4 ()
@@ -77,7 +77,7 @@ void f4 ()
** ...
** cmplt p[0-9]+.s, p7/z, z[0-9]+.s, #0
** ptest p[0-9]+, p[0-9]+.b
-** b.any .L[0-9]+
+** b.(any|none) .L[0-9]+
** ...
*/
void f5 ()
@@ -94,7 +94,7 @@ void f5 ()
** ...
** cmple p[0-9]+.s, p[0-9]+/z, z[0-9]+.s, #0
** ptest p[0-9]+, p[0-9]+.b
-** b.any \.L[0-9]+
+** b.(any|none) \.L[0-9]+
** ...
*/
void f6 ()
diff --git a/gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c b/gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c
index a5e7b94..673b781 100644
--- a/gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c
+++ b/gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c
@@ -15,7 +15,7 @@ int b[N] = {0};
** cmgt v[0-9]+.4s, v[0-9]+.4s, #0
** umaxp v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** fmov x[0-9]+, d[0-9]+
-** cbnz x[0-9]+, \.L[0-9]+
+** cbn?z x[0-9]+, \.L[0-9]+
** ...
*/
void f1 ()
@@ -34,7 +34,7 @@ void f1 ()
** cmge v[0-9]+.4s, v[0-9]+.4s, #0
** umaxp v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** fmov x[0-9]+, d[0-9]+
-** cbnz x[0-9]+, \.L[0-9]+
+** cbn?z x[0-9]+, \.L[0-9]+
** ...
*/
void f2 ()
@@ -53,7 +53,7 @@ void f2 ()
** cmeq v[0-9]+.4s, v[0-9]+.4s, #0
** umaxp v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** fmov x[0-9]+, d[0-9]+
-** cbnz x[0-9]+, \.L[0-9]+
+** cbn?z x[0-9]+, \.L[0-9]+
** ...
*/
void f3 ()
@@ -72,7 +72,7 @@ void f3 ()
** cmtst v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** umaxp v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** fmov x[0-9]+, d[0-9]+
-** cbnz x[0-9]+, \.L[0-9]+
+** cbn?z x[0-9]+, \.L[0-9]+
** ...
*/
void f4 ()
@@ -91,7 +91,7 @@ void f4 ()
** cmlt v[0-9]+.4s, v[0-9]+.4s, #0
** umaxp v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** fmov x[0-9]+, d[0-9]+
-** cbnz x[0-9]+, \.L[0-9]+
+** cbn?z x[0-9]+, \.L[0-9]+
** ...
*/
void f5 ()
@@ -110,7 +110,7 @@ void f5 ()
** cmle v[0-9]+.4s, v[0-9]+.4s, #0
** umaxp v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
** fmov x[0-9]+, d[0-9]+
-** cbnz x[0-9]+, \.L[0-9]+
+** cbn?z x[0-9]+, \.L[0-9]+
** ...
*/
void f6 ()