diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp
index cabd82f..4156f08 100644
--- a/lld/ELF/LinkerScript.cpp
+++ b/lld/ELF/LinkerScript.cpp
@@ -63,9 +63,15 @@
 static int precedence(StringRef Op) {
   return StringSwitch<int>(Op)
       .Case("*", 4)
-      .Case("/", 3)
-      .Case("+", 2)
-      .Case("-", 2)
+      .Case("/", 4)
+      .Case("+", 3)
+      .Case("-", 3)
+      .Case("<", 2)
+      .Case(">", 2)
+      .Case(">=", 2)
+      .Case("<=", 2)
+      .Case("==", 2)
+      .Case("!=", 2)
       .Case("&", 1)
       .Default(-1);
 }
@@ -115,10 +121,6 @@
 }
 
 uint64_t ExprParser::apply(StringRef Op, uint64_t L, uint64_t R) {
-  if (Op == "+")
-    return L + R;
-  if (Op == "-")
-    return L - R;
   if (Op == "*")
     return L * R;
   if (Op == "/") {
@@ -128,6 +130,22 @@
     }
     return L / R;
   }
+  if (Op == "+")
+    return L + R;
+  if (Op == "-")
+    return L - R;
+  if (Op == "<")
+    return L < R;
+  if (Op == ">")
+    return L > R;
+  if (Op == ">=")
+    return L >= R;
+  if (Op == "<=")
+    return L <= R;
+  if (Op == "==")
+    return L == R;
+  if (Op == "!=")
+    return L != R;
   if (Op == "&")
     return L & R;
   llvm_unreachable("invalid operator");
