Commit 3ed33cee by Chris Forbes

Add support for OpIsInf, OpIsNan

Bug: b/126873455 Change-Id: I5cac6eedf2d17bed6f01275e6d80cf8227886a8e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/26468Tested-by: 's avatarChris Forbes <chrisforbes@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
parent b1243730
...@@ -326,6 +326,8 @@ namespace sw ...@@ -326,6 +326,8 @@ namespace sw
case spv::OpBitcast: case spv::OpBitcast:
case spv::OpSelect: case spv::OpSelect:
case spv::OpExtInst: case spv::OpExtInst:
case spv::OpIsInf:
case spv::OpIsNan:
// Instructions that yield an intermediate value // Instructions that yield an intermediate value
{ {
TypeID typeId = insn.word(1); TypeID typeId = insn.word(1);
...@@ -1003,6 +1005,8 @@ namespace sw ...@@ -1003,6 +1005,8 @@ namespace sw
case spv::OpConvertSToF: case spv::OpConvertSToF:
case spv::OpConvertUToF: case spv::OpConvertUToF:
case spv::OpBitcast: case spv::OpBitcast:
case spv::OpIsInf:
case spv::OpIsNan:
EmitUnaryOp(insn, routine); EmitUnaryOp(insn, routine);
break; break;
...@@ -1418,6 +1422,12 @@ namespace sw ...@@ -1418,6 +1422,12 @@ namespace sw
case spv::OpBitcast: case spv::OpBitcast:
dst.emplace(i, val); dst.emplace(i, val);
break; break;
case spv::OpIsInf:
dst.emplace(i, As<SIMD::Float>(IsInf(val)));
break;
case spv::OpIsNan:
dst.emplace(i, As<SIMD::Float>(IsNan(val)));
break;
default: default:
UNIMPLEMENTED("Unhandled unary operator %s", OpcodeName(insn.opcode()).c_str()); UNIMPLEMENTED("Unhandled unary operator %s", OpcodeName(insn.opcode()).c_str());
} }
......
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