target-ppc: Fix vcmpbfp. Unordered Case
Fix the implementation of Vector Compare Bounds Single Precision. Specifically, fix the case where the operands are unordered -- since the result is non-zero, the CR[6] field should be set to zero. Signed-off-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
24e669ba53
commit
4007b8de6e
|
@ -708,7 +708,7 @@ static inline void vcmpbfp_internal(CPUPPCState *env, ppc_avr_t *r,
|
||||||
int le_rel = float32_compare_quiet(a->f[i], b->f[i], &env->vec_status);
|
int le_rel = float32_compare_quiet(a->f[i], b->f[i], &env->vec_status);
|
||||||
if (le_rel == float_relation_unordered) {
|
if (le_rel == float_relation_unordered) {
|
||||||
r->u32[i] = 0xc0000000;
|
r->u32[i] = 0xc0000000;
|
||||||
/* ALL_IN does not need to be updated here. */
|
all_in = 1;
|
||||||
} else {
|
} else {
|
||||||
float32 bneg = float32_chs(b->f[i]);
|
float32 bneg = float32_chs(b->f[i]);
|
||||||
int ge_rel = float32_compare_quiet(a->f[i], bneg, &env->vec_status);
|
int ge_rel = float32_compare_quiet(a->f[i], bneg, &env->vec_status);
|
||||||
|
|
Loading…
Reference in a new issue