| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
On 17 nov 2005, at 10:27, Rustam Muginov wrote:
I am interested what would be fastest implementation of the following multiplication:
#define Mul31(x,y) ((int32)(((int64)(x) * (y)) >> 31))
obviously, int32 and int64 are signed 32 and 64 integers.
Currently i am using:inline int32 Mul31(int32 x, int32 y) { register int hi_prod, lo_prod, result; asm { mullw lo_prod, x, y srwi lo_prod, lo_prod, 31
mulhw hi_prod, x, y slwi hi_prod, hi_prod, 1
or result, hi_prod, lo_prod; } return result; }
Is it possible to make it faster?
mullhw result, x, y rlwimi result, lo_prod, 1, 0, 30
Jonas
_______________________________________________ Do not post admin requests to the list. They will be ignored. PerfOptimization-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/perfoptimization-dev/email@hidden
| References: | |
| >Creating fastest Mul31 (From: Rustam Muginov <email@hidden>) |
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.