diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/DeNaN.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/passes/DeNaN.cpp b/src/passes/DeNaN.cpp index b0bd5fb60..0251a0c58 100644 --- a/src/passes/DeNaN.cpp +++ b/src/passes/DeNaN.cpp @@ -58,20 +58,20 @@ struct DeNaN : public WalkerPass< if (expr->type == Type::f32) { if (c && c->value.isNaN()) { replacement = builder.makeConst(float(0)); - } else { + } else if (!c) { replacement = builder.makeCall(deNan32, {expr}, Type::f32); } } else if (expr->type == Type::f64) { if (c && c->value.isNaN()) { replacement = builder.makeConst(double(0)); - } else { + } else if (!c) { replacement = builder.makeCall(deNan64, {expr}, Type::f64); } } else if (expr->type == Type::v128) { if (c && hasNaNLane(c)) { uint8_t zero[16] = {}; replacement = builder.makeConst(Literal(zero)); - } else { + } else if (!c) { replacement = builder.makeCall(deNan128, {expr}, Type::v128); } } |