找回密码
 欢迎注册
查看: 11129|回复: 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-11-22 17:38 , Processed in 0.022307 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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