diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-07-29 12:10:11 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-07-29 12:10:11 +0000 |
commit | 41b7ecb127b93b1aecc29a298ec21dc94603e6fa (patch) | |
tree | 287ce1cbf88caf973534715c7816d57b9089b265 /test/regression/int32.c | |
parent | 4bf8b331372388dc9cb39154c986c918df9e071c (diff) | |
download | compcert-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.c | 12 |
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); |