glsl: Implement FCMP

This commit is contained in:
ameerj 2021-05-24 00:55:39 -04:00
parent 7febd59ce1
commit b3fce08191
3 changed files with 204 additions and 261 deletions

View file

@ -25,6 +25,18 @@ std::string Representation(Id id) {
}
std::string FormatFloat(std::string_view value, IR::Type type) {
// TODO: Confirm FP64 nan/inf
if (type == IR::Type::F32) {
if (value == "nan") {
return "uintBitsToFloat(0x7fc00000)";
}
if (value == "inf") {
return "uintBitsToFloat(0x7f800000)";
}
if (value == "-inf") {
return "uintBitsToFloat(0xff800000)";
}
}
const bool needs_dot = value.find_first_of('.') == std::string_view::npos;
const bool needs_suffix = !value.ends_with('f');
const auto suffix = type == IR::Type::F32 ? "f" : "lf";