找回密码
 欢迎注册
查看: 7292|回复: 4

[讨论] 128位数字的无跳转比较问题

[复制链接]
发表于 2009-3-19 17:12:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
有两个无符号128位整数

typedef struct
{
  unsigned int d[4];
} UINT128;

现在求函数
int compare(UINT128 * a, UINT128 * b )
的汇编化,无任何跳转指令的版本
a > b返回1
a = b返回1
a < b返回-1
(没有答案,请大家讨论)

可以利用到SSE2指令
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-20 07:34:35 | 显示全部楼层
你应该首先约定是小端在前(Intel模式),还是大端在前(Moto模式)?
这样才好比较大小(推荐用前者)。

但感觉本身需要判断完成的、很难并行处理的程序,
估计用 SIMD 指令也够戗。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-3-20 07:53:53 | 显示全部楼层


小端形式

用无分支指令的减法能判断>=

现在是如何区分>和=
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-3-20 09:15:45 | 显示全部楼层
原帖由 无心人 于 2009-3-19 17:12 发表
...
(没有答案,请大家讨论)
可以利用到SSE2指令

我记得我曾经安装MATLAB R2008b折腾了好几天,精力憔悴的时候,才获悉,这个版本开始使用SSE2 指令集,而我的机子是PIII的,。。。

从此,我就记下了SEE2这个字符串
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-3-20 10:23:43 | 显示全部楼层
呃,PIII

楼上该换机器了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-4 04:50 , Processed in 0.062817 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表