[AArch64][testsuite] Adjust some arith+compare tests for potentially more aggressive...
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Mon, 13 Jul 2015 10:19:49 +0000 (10:19 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Mon, 13 Jul 2015 10:19:49 +0000 (10:19 +0000)
* 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.

From-SVN: r225732

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/adds1.c
gcc/testsuite/gcc.target/aarch64/adds3.c
gcc/testsuite/gcc.target/aarch64/ands_1.c
gcc/testsuite/gcc.target/aarch64/bics_1.c
gcc/testsuite/gcc.target/aarch64/subs1.c
gcc/testsuite/gcc.target/aarch64/subs3.c

index 46cf748e298c3f3d99dd4d53797e70419fca4dd9..afcd71fac3bd8e7da02ae166070c005a27352ad1 100644 (file)
@@ -1,3 +1,13 @@
+2015-07-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * 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  <vehre@gcc.gnu.org>
 
        PR fortran/64589
index 6cc700a3e1bbc6920caee131ef352b33ebb7ccfa..2bb3129efb1f0f438a33dffa67a9d0339bd156af 100644 (file)
@@ -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;
index 18efd1c21544d9c9a44bdb7e3f44d3d77d4c49b4..c5518bdcaf20bba797de394492558cb41840e4e2 100644 (file)
@@ -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;
index 670027fc4b547863c8351d043598753730df6655..005924625ccdd9950ff1501bfb17152dfc36ff20 100644 (file)
@@ -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,
index 4b95e5bb92ff6a2eea4334e583843ef2780953ff..682962c72eb9b2b354f08808e3626ef007f78282 100644 (file)
@@ -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;
 }
-
index 87257c7bbd2962b5c9084e6a86ba52f5b157f471..ebfc17f4e7a42ebe4f193f17812792ff306610e4 100644 (file)
@@ -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;
index 90f20b8439106c41c4f0c29ea398b1362a399430..59581bf1ab790b06a9be4489d7e02ee889519447 100644 (file)
@@ -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;