[LLVMdev] Default implementations for __ashldi3, __ashrdi3, __divdi3, __udivdi3, etc?

Villmow, Micah
Fri, 31 Oct 2008 17:26:41 -0000

Dan,
 For the shifts, check out chapter 2 of hacker's delight by Guy Steele.

http://www.hackersdelight.org/

-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of Daniel M Gessel
Sent: Friday, October 31, 2008 10:13 AM
To: LLVM Developers Mailing List
Subject: [LLVMdev] Default implementations for __ashldi3, __ashrdi3,
__divdi3,__udivdi3, etc?

Are there existing "generic" implementations for these functions under
the same license as LLVM? By generic I mean C or IR that doesn't use
any particular HW intrinsics.

I read up on divides in Knuth's Seminumerical book, but decided to use
base-2 long division on the first go-around for simplicity. I know
it's not very efficient and I'm looking for shortcuts to something
better.

Pointers to divide algo's could also be of use.

Thanks,

Dan

_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu