summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/passes/DeNaN.cpp6
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);
}
}