From d0b53b5962aa664c8d1d5c1537c18adabce54f4c Mon Sep 17 00:00:00 2001 From: ktkachov Date: Mon, 13 Jul 2015 10:19:49 +0000 Subject: [PATCH] [AArch64][testsuite] Adjust some arith+compare tests for potentially more aggressive if-conversion * gcc.target/aarch64/adds3.c: Adjust for more aggressive if-conversion.. * gcc.target/aarch64/adds1.c: Likewise. * gcc.target/aarch64/ands_1.c: Likewise. * gcc.target/aarch64/bics_1.c: Likewise. * gcc.target/aarch64/subs1.c: Likewise. * gcc.target/aarch64/subs3.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225732 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 10 ++++++ gcc/testsuite/gcc.target/aarch64/adds1.c | 48 +++++++++++++------------- gcc/testsuite/gcc.target/aarch64/adds3.c | 20 +++++------ gcc/testsuite/gcc.target/aarch64/ands_1.c | 25 +++++++------- gcc/testsuite/gcc.target/aarch64/bics_1.c | 18 +++++----- gcc/testsuite/gcc.target/aarch64/subs1.c | 56 +++++++++++++++---------------- gcc/testsuite/gcc.target/aarch64/subs3.c | 20 +++++------ 7 files changed, 102 insertions(+), 95 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 46cf748e298..afcd71fac3b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2015-07-13 Kyrylo Tkachov + + * gcc.target/aarch64/adds3.c: Adjust for more aggressive + if-conversion.. + * gcc.target/aarch64/adds1.c: Likewise. + * gcc.target/aarch64/ands_1.c: Likewise. + * gcc.target/aarch64/bics_1.c: Likewise. + * gcc.target/aarch64/subs1.c: Likewise. + * gcc.target/aarch64/subs3.c: Likewise. + 2015-07-13 Andre Vehreschild PR fortran/64589 diff --git a/gcc/testsuite/gcc.target/aarch64/adds1.c b/gcc/testsuite/gcc.target/aarch64/adds1.c index 6cc700a3e1b..2bb3129efb1 100644 --- a/gcc/testsuite/gcc.target/aarch64/adds1.c +++ b/gcc/testsuite/gcc.target/aarch64/adds1.c @@ -12,7 +12,7 @@ adds_si_test1 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -24,7 +24,7 @@ adds_si_test2 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -36,7 +36,7 @@ adds_si_test3 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } typedef long long s64; @@ -50,7 +50,7 @@ adds_di_test1 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -62,7 +62,7 @@ adds_di_test2 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -74,7 +74,7 @@ adds_di_test3 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } int main () @@ -83,64 +83,64 @@ int main () s64 y; x = adds_si_test1 (29, 4, 5); - if (x != 42) + if (x != (29 + 4)) abort (); - x = adds_si_test1 (5, 2, 20); - if (x != 29) + x = adds_si_test1 (5, 2, -5); + if (x != 7) abort (); x = adds_si_test2 (29, 4, 5); - if (x != 293) + if (x != (29 + 0xff)) abort (); - x = adds_si_test2 (1024, 2, 20); - if (x != 1301) + x = adds_si_test2 (-255, 2, 20); + if (x != -235) abort (); x = adds_si_test3 (35, 4, 5); - if (x != 76) + if (x != (35 + (4 << 3))) abort (); - x = adds_si_test3 (5, 2, 20); - if (x != 43) + x = adds_si_test3 (-(2 << 3), 2, 20); + if (x != (20 - (2 << 3))) abort (); y = adds_di_test1 (0x130000029ll, 0x320000004ll, 0x505050505ll); - if (y != 0xc75050536) + if (y != (0x130000029ll + 0x320000004ll)) abort (); y = adds_di_test1 (0x5000500050005ll, - 0x2111211121112ll, + -0x5000500050005ll, 0x0000000002020ll); - if (y != 0x9222922294249) + if (y != (0x5000500050005ll + 0x0000000002020ll)) abort (); y = adds_di_test2 (0x130000029ll, 0x320000004ll, 0x505050505ll); - if (y != 0x955050631) + if (y != (0x130000029ll + 0xff)) abort (); - y = adds_di_test2 (0x130002900ll, + y = adds_di_test2 (-0xff, 0x320000004ll, 0x505050505ll); - if (y != 0x955052f08) + if (y != (0x505050505ll - 0xff)) abort (); y = adds_di_test3 (0x130000029ll, 0x064000008ll, 0x505050505ll); - if (y != 0x9b9050576) + if (y != (0x130000029ll + (0x064000008ll << 3))) abort (); y = adds_di_test3 (0x130002900ll, - 0x088000008ll, + -(0x130002900ll >> 3), 0x505050505ll); - if (y != 0xafd052e4d) + if (y != (0x130002900ll + 0x505050505ll)) abort (); return 0; diff --git a/gcc/testsuite/gcc.target/aarch64/adds3.c b/gcc/testsuite/gcc.target/aarch64/adds3.c index 18efd1c2154..c5518bdcaf2 100644 --- a/gcc/testsuite/gcc.target/aarch64/adds3.c +++ b/gcc/testsuite/gcc.target/aarch64/adds3.c @@ -12,7 +12,7 @@ adds_ext (s64 a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -23,7 +23,7 @@ adds_shift_ext (s64 a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int main () @@ -32,27 +32,27 @@ int main () s64 y; x = adds_ext (0x13000002ll, 41, 15); - if (x != 318767203) + if (x != (int)(0x13000002ll + 41)) abort (); - x = adds_ext (0x50505050ll, 29, 4); - if (x != 1347440782) + x = adds_ext (0x50505050ll, -0x50505050ll, 4); + if (x != (int)(0x50505050ll + 4)) abort (); x = adds_ext (0x12121212121ll, 2, 14); - if (x != 555819315) + if (x != (int)(0x12121212121ll + 2)) abort (); x = adds_shift_ext (0x123456789ll, 4, 12); - if (x != 591751097) + if (x != (int)(0x123456789ll + (4 << 3))) abort (); - x = adds_shift_ext (0x02020202ll, 9, 8); - if (x != 33686107) + x = adds_shift_ext (-(0x02020202ll << 3), 0x02020202ll, 8); + if (x != (int)(8 - (0x02020202ll << 3))) abort (); x = adds_shift_ext (0x987987987987ll, 23, 41); - if (x != -2020050305) + if (x != (int)(0x987987987987ll + (23 << 3))) abort (); return 0; diff --git a/gcc/testsuite/gcc.target/aarch64/ands_1.c b/gcc/testsuite/gcc.target/aarch64/ands_1.c index 670027fc4b5..005924625cc 100644 --- a/gcc/testsuite/gcc.target/aarch64/ands_1.c +++ b/gcc/testsuite/gcc.target/aarch64/ands_1.c @@ -12,7 +12,7 @@ ands_si_test1 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -24,7 +24,7 @@ ands_si_test2 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -36,7 +36,7 @@ ands_si_test3 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } typedef long long s64; @@ -50,7 +50,7 @@ ands_di_test1 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -62,7 +62,7 @@ ands_di_test2 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -74,7 +74,7 @@ ands_di_test3 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -84,7 +84,7 @@ main () s64 y; x = ands_si_test1 (29, 4, 5); - if (x != 13) + if (x != (29 & 4)) abort (); x = ands_si_test1 (5, 2, 20); @@ -92,7 +92,7 @@ main () abort (); x = ands_si_test2 (29, 4, 5); - if (x != 38) + if (x != (29 & 0xff)) abort (); x = ands_si_test2 (1024, 2, 20); @@ -100,7 +100,7 @@ main () abort (); x = ands_si_test3 (35, 4, 5); - if (x != 41) + if (x != (35 & (4 << 3))) abort (); x = ands_si_test3 (5, 2, 20); @@ -111,7 +111,7 @@ main () 0x320000004ll, 0x505050505ll); - if (y != ((0x130000029ll & 0x320000004ll) + 0x320000004ll + 0x505050505ll)) + if (y != ((0x130000029ll & 0x320000004ll))) abort (); y = ands_di_test1 (0x5000500050005ll, @@ -123,7 +123,7 @@ main () y = ands_di_test2 (0x130000029ll, 0x320000004ll, 0x505050505ll); - if (y != ((0x130000029ll & 0xff) + 0x320000004ll + 0x505050505ll)) + if (y != ((0x130000029ll & 0xff))) abort (); y = ands_di_test2 (0x130002900ll, @@ -135,8 +135,7 @@ main () y = ands_di_test3 (0x130000029ll, 0x064000008ll, 0x505050505ll); - if (y != ((0x130000029ll & (0x064000008ll << 3)) - + 0x064000008ll + 0x505050505ll)) + if (y != ((0x130000029ll & (0x064000008ll << 3)))) abort (); y = ands_di_test3 (0x130002900ll, diff --git a/gcc/testsuite/gcc.target/aarch64/bics_1.c b/gcc/testsuite/gcc.target/aarch64/bics_1.c index 4b95e5bb92f..682962c72eb 100644 --- a/gcc/testsuite/gcc.target/aarch64/bics_1.c +++ b/gcc/testsuite/gcc.target/aarch64/bics_1.c @@ -12,7 +12,7 @@ bics_si_test1 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -24,7 +24,7 @@ bics_si_test2 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } typedef long long s64; @@ -38,7 +38,7 @@ bics_di_test1 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -50,7 +50,7 @@ bics_di_test2 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -60,7 +60,7 @@ main () s64 y; x = bics_si_test1 (29, ~4, 5); - if (x != ((29 & 4) + ~4 + 5)) + if (x != (29 & 4)) abort (); x = bics_si_test1 (5, ~2, 20); @@ -68,7 +68,7 @@ main () abort (); x = bics_si_test2 (35, ~4, 5); - if (x != ((35 & ~(~4 << 3)) + ~4 + 5)) + if (x != (35 & ~(~4 << 3))) abort (); x = bics_si_test2 (96, ~2, 20); @@ -79,7 +79,7 @@ main () ~0x320000004ll, 0x505050505ll); - if (y != ((0x130000029ll & 0x320000004ll) + ~0x320000004ll + 0x505050505ll)) + if (y != (0x130000029ll & 0x320000004ll)) abort (); y = bics_di_test1 (0x5000500050005ll, @@ -91,8 +91,7 @@ main () y = bics_di_test2 (0x130000029ll, ~0x064000008ll, 0x505050505ll); - if (y != ((0x130000029ll & ~(~0x064000008ll << 3)) - + ~0x064000008ll + 0x505050505ll)) + if (y != (0x130000029ll & ~(~0x064000008ll << 3))) abort (); y = bics_di_test2 (0x130002900ll, @@ -103,4 +102,3 @@ main () return 0; } - diff --git a/gcc/testsuite/gcc.target/aarch64/subs1.c b/gcc/testsuite/gcc.target/aarch64/subs1.c index 87257c7bbd2..ebfc17f4e7a 100644 --- a/gcc/testsuite/gcc.target/aarch64/subs1.c +++ b/gcc/testsuite/gcc.target/aarch64/subs1.c @@ -12,7 +12,7 @@ subs_si_test1 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -24,7 +24,7 @@ subs_si_test2 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -36,7 +36,7 @@ subs_si_test3 (int a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } typedef long long s64; @@ -50,7 +50,7 @@ subs_di_test1 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -62,7 +62,7 @@ subs_di_test2 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } s64 @@ -74,7 +74,7 @@ subs_di_test3 (s64 a, s64 b, s64 c) if (d == 0) return a + c; else - return b + d + c; + return d; } int main () @@ -83,64 +83,64 @@ int main () s64 y; x = subs_si_test1 (29, 4, 5); - if (x != 33) + if (x != 24) abort (); - x = subs_si_test1 (5, 2, 20); - if (x != 7) + x = subs_si_test1 (20, 2, 20); + if (x != 40) abort (); - x = subs_si_test2 (29, 4, 5); - if (x != -217) - abort (); + x = subs_si_test2 (0xff, 4, 5); + if (x != (0xff + 5)) + abort (); - x = subs_si_test2 (1024, 2, 20); - if (x != 791) - abort (); + x = subs_si_test2 (1024, 2, 20); + if (x != (1024 - 0xff)) + abort (); x = subs_si_test3 (35, 4, 5); - if (x != 12) + if (x != 35 - (4 << 3)) abort (); - x = subs_si_test3 (5, 2, 20); - if (x != 11) + x = subs_si_test3 (5 << 3, 5, 20); + if (x != (20 + (5 << 3))) abort (); y = subs_di_test1 (0x130000029ll, 0x320000004ll, 0x505050505ll); - if (y != 0x45000002d) + if (y != (0x130000029ll - 0x505050505ll)) abort (); y = subs_di_test1 (0x5000500050005ll, 0x2111211121112ll, - 0x0000000002020ll); - if (y != 0x7111711171117) + 0x5000500050005ll); + if (y != (0x5000500050005ll + 0x5000500050005ll)) abort (); y = subs_di_test2 (0x130000029ll, 0x320000004ll, 0x505050505ll); - if (y != 0x955050433) + if (y != (0x130000029ll - 0xff)) abort (); - y = subs_di_test2 (0x130002900ll, + y = subs_di_test2 (0xff, 0x320000004ll, 0x505050505ll); - if (y != 0x955052d0a) + if (y != (0xff + 0x505050505ll)) abort (); y = subs_di_test3 (0x130000029ll, 0x064000008ll, 0x505050505ll); - if (y != 0x3790504f6) + if (y != (0x130000029ll - (0x064000008ll << 3))) abort (); - y = subs_di_test3 (0x130002900ll, - 0x088000008ll, + y = subs_di_test3 (0x130002900ll << 3, + 0x130002900ll, 0x505050505ll); - if (y != 0x27d052dcd) + if (y != (0x505050505ll + (0x130002900ll << 3))) abort (); return 0; diff --git a/gcc/testsuite/gcc.target/aarch64/subs3.c b/gcc/testsuite/gcc.target/aarch64/subs3.c index 90f20b84391..59581bf1ab7 100644 --- a/gcc/testsuite/gcc.target/aarch64/subs3.c +++ b/gcc/testsuite/gcc.target/aarch64/subs3.c @@ -12,7 +12,7 @@ subs_ext (s64 a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int @@ -23,7 +23,7 @@ subs_shift_ext (s64 a, int b, int c) if (d == 0) return a + c; else - return b + d + c; + return d; } int main () @@ -32,27 +32,27 @@ int main () s64 y; x = subs_ext (0x13000002ll, 41, 15); - if (x != 318767121) + if (x != (int)(0x13000002ll - 41)) abort (); - x = subs_ext (0x50505050ll, 29, 4); - if (x != 1347440724) + x = subs_ext (0x50505050ll, 0x50505050ll, 4); + if (x != (int)(0x50505050ll + 4)) abort (); x = subs_ext (0x12121212121ll, 2, 14); - if (x != 555819311) + if (x != (int)(0x12121212121ll - 2)) abort (); x = subs_shift_ext (0x123456789ll, 4, 12); - if (x != 591751033) + if (x != (int)(0x123456789ll - (4 << 3))) abort (); - x = subs_shift_ext (0x02020202ll, 9, 8); - if (x != 33685963) + x = subs_shift_ext (0x02020202ll << 3, 0x02020202ll, 8); + if (x != (int)(8 + (0x02020202ll << 3))) abort (); x = subs_shift_ext (0x987987987987ll, 23, 41); - if (x != -2020050673) + if (x != (int)(0x987987987987ll - (23 << 3))) abort (); return 0; -- 2.11.4.GIT