aboutsummaryrefslogtreecommitdiffstats
path: root/test/regression/int32.c
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-07-29 12:10:11 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-07-29 12:10:11 +0000
commit41b7ecb127b93b1aecc29a298ec21dc94603e6fa (patch)
tree287ce1cbf88caf973534715c7816d57b9089b265 /test/regression/int32.c
parent4bf8b331372388dc9cb39154c986c918df9e071c (diff)
downloadcompcert-41b7ecb127b93b1aecc29a298ec21dc94603e6fa.tar.gz
compcert-41b7ecb127b93b1aecc29a298ec21dc94603e6fa.zip
Optimize integer divisions by positive constants, turning them into
multiply-high and shifts. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2300 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'test/regression/int32.c')
-rw-r--r--test/regression/int32.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/regression/int32.c b/test/regression/int32.c
index bec50f0c..d7b6c9e8 100644
--- a/test/regression/int32.c
+++ b/test/regression/int32.c
@@ -48,6 +48,18 @@ static void test1(u32 x, u32 y)
printf("x %%u y = %x\n", safe_umod32(x, y));
printf("x /s y = %x\n", safe_sdiv32(x, y));
printf("x %%s y = %x\n", safe_smod32(x, y));
+ printf("x /u 3 = %x\n", x / 3);
+ printf("x %%u 3 = %x\n", x % 3);
+ printf("x /s 3 = %x\n", (s32)x / 3);
+ printf("x %%s 3 = %x\n", (s32)x % 3);
+ printf("x /u 5 = %x\n", x / 5);
+ printf("x %%u 5 = %x\n", x % 5);
+ printf("x /s 5 = %x\n", (s32)x / 5);
+ printf("x %%s 5 = %x\n", (s32)x % 5);
+ printf("x /u 11 = %x\n", x / 11);
+ printf("x %%u 11 = %x\n", x % 11);
+ printf("x /s 11 = %x\n", (s32)x / 11);
+ printf("x %%s 11 = %x\n", (s32)x % 11);
printf("~x = %x\n", ~x);
printf("x & y = %x\n", x & y);
printf("x | y = %x\n", x | y);