Commit 0e4d6ffb by Chris Forbes

Add support for OpFMod

Bug: b/126873455 Test: dEQP-VK.glsl.operator.common_functions.mod.* Change-Id: I7f261e7bd4dda72b18594cd7e2ee7044bc60466b Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27369Tested-by: 's avatarChris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent 10fd6247
...@@ -329,6 +329,7 @@ namespace sw ...@@ -329,6 +329,7 @@ namespace sw
case spv::OpFSub: case spv::OpFSub:
case spv::OpFMul: case spv::OpFMul:
case spv::OpFDiv: case spv::OpFDiv:
case spv::OpFMod:
case spv::OpFOrdEqual: case spv::OpFOrdEqual:
case spv::OpFUnordEqual: case spv::OpFUnordEqual:
case spv::OpFOrdNotEqual: case spv::OpFOrdNotEqual:
...@@ -1139,6 +1140,7 @@ namespace sw ...@@ -1139,6 +1140,7 @@ namespace sw
case spv::OpFSub: case spv::OpFSub:
case spv::OpFMul: case spv::OpFMul:
case spv::OpFDiv: case spv::OpFDiv:
case spv::OpFMod:
case spv::OpFOrdEqual: case spv::OpFOrdEqual:
case spv::OpFUnordEqual: case spv::OpFUnordEqual:
case spv::OpFOrdNotEqual: case spv::OpFOrdNotEqual:
...@@ -1764,6 +1766,10 @@ namespace sw ...@@ -1764,6 +1766,10 @@ namespace sw
case spv::OpFDiv: case spv::OpFDiv:
dst.emplace(i, lhs.Float(i) / rhs.Float(i)); dst.emplace(i, lhs.Float(i) / rhs.Float(i));
break; break;
case spv::OpFMod:
// TODO(b/126873455): inaccurate for values greater than 2^24
dst.emplace(i, lhs.Float(i) - rhs.Float(i) * Floor(lhs.Float(i) / rhs.Float(i)));
break;
case spv::OpFOrdEqual: case spv::OpFOrdEqual:
dst.emplace(i, CmpEQ(lhs.Float(i), rhs.Float(i))); dst.emplace(i, CmpEQ(lhs.Float(i), rhs.Float(i)));
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment