On 11/11/2016 03:20 PM, Bastian Koppelmann wrote:
+ if (muladd_negate_c) {
+ cSign ^= 1;
+ }
+ if (((aExp == 0xff) || (bExp == 0xff)) && (cExp == 0xff)) {
+ if (aSign ^ bSign ^ cSign) {
If you're going to make muladd_negate_c a bool, you might as well just fold
that in here:
if (aSign ^ bSign ^ cSign ^ muladd_negate_c)
And, come to think of it,
+ arg1 = float32_squash_input_denormal(arg1, &env->fp_status);
+ arg2 = float32_squash_input_denormal(arg2, &env->fp_status);
+ arg3 = float32_squash_input_denormal(arg3, &env->fp_status);
can be folded into f_maddsub_nan_result as
} else if (float32_is_infinity(arg1)
&& float32_is_zero(float32_squash_input_denormal
(arg2, &env->fp_status))) {
return MUL_NAN;
} else if (float32_is_infinity(arg2)
&& float32_is_zero(float32_squash_input_denormal
(arg1, &env->fp_status))) {
return MUL_NAN;
which makes it less likely that the squash will actually be call
Otherwise,
Reviewed-by: Richard Henderson <[email protected]>
r~