mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-05 14:31:24 +12:00
SPU LLVM: Remove wrong zero sign fixup
This commit is contained in:
parent
e32c48d0dd
commit
430b57833d
1 changed files with 5 additions and 10 deletions
|
@ -5987,29 +5987,24 @@ public:
|
||||||
// This is odd since SPU code could just use the FM instruction, but it seems common enough
|
// This is odd since SPU code could just use the FM instruction, but it seems common enough
|
||||||
if (auto [ok, data] = get_const_vector(c.value, m_pos); ok)
|
if (auto [ok, data] = get_const_vector(c.value, m_pos); ok)
|
||||||
{
|
{
|
||||||
if (is_spu_float_zero(data, -1))
|
if (is_spu_float_zero(data, 0))
|
||||||
{
|
{
|
||||||
return eval(a * b);
|
return eval(a * b);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_use_fma && is_spu_float_zero(data, +1))
|
|
||||||
{
|
|
||||||
return eval(a * b + fsplat<f32[4]>(0.f));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ([&]()
|
if ([&]()
|
||||||
{
|
{
|
||||||
if (auto [ok, data] = get_const_vector(a.value, m_pos); ok)
|
if (auto [ok, data] = get_const_vector(a.value, m_pos); ok)
|
||||||
{
|
{
|
||||||
if (!is_spu_float_zero(data, +1))
|
if (!is_spu_float_zero(data, 0))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auto [ok0, data0] = get_const_vector(b.value, m_pos); ok0)
|
if (auto [ok0, data0] = get_const_vector(b.value, m_pos); ok0)
|
||||||
{
|
{
|
||||||
if (is_spu_float_zero(data0, +1))
|
if (is_spu_float_zero(data0, 0))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -6018,14 +6013,14 @@ public:
|
||||||
|
|
||||||
if (auto [ok, data] = get_const_vector(a.value, m_pos); ok)
|
if (auto [ok, data] = get_const_vector(a.value, m_pos); ok)
|
||||||
{
|
{
|
||||||
if (!is_spu_float_zero(data, -1))
|
if (!is_spu_float_zero(data, 0))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auto [ok0, data0] = get_const_vector(b.value, m_pos); ok0)
|
if (auto [ok0, data0] = get_const_vector(b.value, m_pos); ok0)
|
||||||
{
|
{
|
||||||
if (is_spu_float_zero(data0, -1))
|
if (is_spu_float_zero(data0, 0))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue