summaryrefslogtreecommitdiff
path: root/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test
diff options
context:
space:
mode:
authorAnna Wawrzyniak <anna.wawrzyniak@mongodb.com>2022-11-29 07:50:14 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-11-29 08:26:45 +0000
commit638bdd33bf1514517fa8d495ed7d73d54f060550 (patch)
treee627323472294fd984660ec8b511c601601e24d2 /src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test
parent7f0f03628ca7cc3e3a0fc931fbefb4e62817e461 (diff)
downloadmongo-638bdd33bf1514517fa8d495ed7d73d54f060550.tar.gz
SERVER-71344 Added EExpression unit test coverage
Diffstat (limited to 'src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test')
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty.txt77
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty_with_constant.txt108
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_numeric.txt155
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_string.txt312
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_mixed.txt267
-rw-r--r--src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_numeric.txt155
31 files changed, 7011 insertions, 0 deletions
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_mixed.txt
new file mode 100644
index 00000000000..67c6216b021
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/AddMixed
+-- INPUT EXPRESSION:
+(s1 + s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: add(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 24
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(235.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(235.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(447.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_numeric.txt
new file mode 100644
index 00000000000..fa72ba31f3d
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/add_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/AddNumeric
+-- INPUT EXPRESSION:
+(s1 + s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: add(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 24
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: 35
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: 135ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: 135.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(235.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: 35
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: 46
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: 146ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: 146.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(246.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: 135ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: 146ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: 246ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: 246.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(346.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: 135.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: 146.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: 246.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: 247.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(347.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(235.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: NumberDecimal(246.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: NumberDecimal(346.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: NumberDecimal(347.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(447.000000000000)
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_mixed.txt
new file mode 100644
index 00000000000..44cdcc099cc
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/Cmp3wMixed
+-- INPUT EXPRESSION:
+(s1 <=> s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: cmp3w(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: 0
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_numeric.txt
new file mode 100644
index 00000000000..dfa4a9a2b4f
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/Cmp3wNumeric
+-- INPUT EXPRESSION:
+(s1 <=> s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: cmp3w(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: 0
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_string.txt
new file mode 100644
index 00000000000..1fc401edbba
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/cmp3w_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/Cmp3wString
+-- INPUT EXPRESSION:
+(s1 <=>[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collCmp3w(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: -1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 1
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: 0
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_mixed.txt
new file mode 100644
index 00000000000..37cbb8f09f5
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/DivMixed
+-- INPUT EXPRESSION:
+(s1 / s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: div(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 1.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0.05369127516778523489932885906040268)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(18.625000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(1)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_numeric.txt
new file mode 100644
index 00000000000..a12b6838985
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/div_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/DivNumeric
+-- INPUT EXPRESSION:
+(s1 / s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: div(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 1.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: 0.521739L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: 0.097561L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: 0.097166L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0.05369127516778523489932885906040268)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: 1.916667L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: 1.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: 0.186992L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: 0.186235L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0.1029082774049217002237136465324385)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: 10.250000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: 5.347826L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: 1.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: 0.995951L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0.5503355704697986577181208053691275)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: 10.291667L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: 5.369565L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: 1.004065L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: 1.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0.5525727069351230425055928411633110)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(18.625000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: NumberDecimal(9.717391304347826086956521739130435)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: NumberDecimal(1.817073170731707317073170731707317)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: NumberDecimal(1.809716599190283400809716599190283)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(1)
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_mixed.txt
new file mode 100644
index 00000000000..e15b02760ae
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/EqMixed
+-- INPUT EXPRESSION:
+(s1 == s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: eq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_numeric.txt
new file mode 100644
index 00000000000..d4e31976424
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/EqNumeric
+-- INPUT EXPRESSION:
+(s1 == s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: eq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_string.txt
new file mode 100644
index 00000000000..8c8a84b474c
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/eq_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/EqString
+-- INPUT EXPRESSION:
+(s1 ==[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty.txt
new file mode 100644
index 00000000000..48c7908d7dd
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty.txt
@@ -0,0 +1,77 @@
+# Golden test output of SBEPrimBinaryTest/FillEmpty
+-- INPUT EXPRESSION:
+(s1 ?: s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001d]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: jmpNothing(target: 0x0013);
+0x000e: jmp(target: 0x001d);
+0x0013: pop();
+0x0014: pushAccessVal(accessor: <accessor>);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty_with_constant.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty_with_constant.txt
new file mode 100644
index 00000000000..75356636101
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/fill_empty_with_constant.txt
@@ -0,0 +1,108 @@
+# Golden test output of SBEPrimBinaryTest/FillEmptyWithConstant
+== VARIATION rhs constant: Nothing
+-- INPUT EXPRESSION:
+(s1 ?: Nothing)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001e]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: jmpNothing(target: 0x0013);
+0x000e: jmp(target: 0x001e);
+0x0013: pop();
+0x0014: pushConstVal(value: Nothing);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true]
+RESULT: true
+
+== VARIATION rhs constant: null
+-- INPUT EXPRESSION:
+(s2 ?: null)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x000b]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: fillEmptyImm(k: Null);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: true
+
+== VARIATION rhs constant: true
+-- INPUT EXPRESSION:
+(s3 ?: true)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x000b]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: fillEmptyImm(k: True);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null, 3: null]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true, 3: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true, 3: true]
+RESULT: true
+
+== VARIATION rhs constant: true
+-- INPUT EXPRESSION:
+(s4 ?: true)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x000b]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: fillEmptyImm(k: True);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing, 4: Nothing]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null, 3: null, 4: null]
+RESULT: null
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true, 3: true, 4: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true, 3: true, 4: true]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_mixed.txt
new file mode 100644
index 00000000000..a5d9a6f475e
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/GreaterEqMixed
+-- INPUT EXPRESSION:
+(s1 >= s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: greaterEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_numeric.txt
new file mode 100644
index 00000000000..c659666c713
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/GreaterEqNumeric
+-- INPUT EXPRESSION:
+(s1 >= s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: greaterEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_string.txt
new file mode 100644
index 00000000000..cbe934c5069
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_eq_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/GreaterEqString
+-- INPUT EXPRESSION:
+(s1 >=[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collGreaterEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_mixed.txt
new file mode 100644
index 00000000000..a45742ee565
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/GreaterMixed
+-- INPUT EXPRESSION:
+(s1 > s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: greater(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_numeric.txt
new file mode 100644
index 00000000000..efee609318e
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/GreaterNumeric
+-- INPUT EXPRESSION:
+(s1 > s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: greater(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_string.txt
new file mode 100644
index 00000000000..6b29bb1e035
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/greater_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/GreaterString
+-- INPUT EXPRESSION:
+(s1 >[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collGreater(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_mixed.txt
new file mode 100644
index 00000000000..e9884a5aee2
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/LessEqMixed
+-- INPUT EXPRESSION:
+(s1 <= s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: lessEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_numeric.txt
new file mode 100644
index 00000000000..4d5a732442b
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/LessEqNumeric
+-- INPUT EXPRESSION:
+(s1 <= s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: lessEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_string.txt
new file mode 100644
index 00000000000..5babaa80c6b
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_eq_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/LessEqString
+-- INPUT EXPRESSION:
+(s1 <=[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collLessEq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_mixed.txt
new file mode 100644
index 00000000000..3d617227507
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/LessMixed
+-- INPUT EXPRESSION:
+(s1 < s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: less(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_numeric.txt
new file mode 100644
index 00000000000..f272ffe99e7
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/LessNumeric
+-- INPUT EXPRESSION:
+(s1 < s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: less(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_string.txt
new file mode 100644
index 00000000000..a35a089c5df
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/less_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/LessString
+-- INPUT EXPRESSION:
+(s1 <[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collLess(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_mixed.txt
new file mode 100644
index 00000000000..745071fe431
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/MulMixed
+-- INPUT EXPRESSION:
+(s1 * s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: mul(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 144
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(2682.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(2682.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(49952.250000000000000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_numeric.txt
new file mode 100644
index 00000000000..3b2f59e35e1
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/mul_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/MulNumeric
+-- INPUT EXPRESSION:
+(s1 * s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: mul(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 144
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: 276
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: 1476ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: 1482.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(2682.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: 276
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: 529
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: 2829ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: 2840.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(5140.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: 1476ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: 2829ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: 15129ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: 15190.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(27490.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: 1482.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: 2840.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: 15190.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: 15252.250000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(27602.250000000000000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(2682.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: NumberDecimal(5140.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: NumberDecimal(27490.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: NumberDecimal(27602.250000000000000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(49952.250000000000000000000000)
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_mixed.txt
new file mode 100644
index 00000000000..c1aa5c134f3
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/NeqMixed
+-- INPUT EXPRESSION:
+(s1 != s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: neq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_numeric.txt
new file mode 100644
index 00000000000..d2900d64212
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/NeqNumeric
+-- INPUT EXPRESSION:
+(s1 != s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: neq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_string.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_string.txt
new file mode 100644
index 00000000000..f25b52ea538
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/neq_string.txt
@@ -0,0 +1,312 @@
+# Golden test output of SBEPrimBinaryTest/NeqString
+-- INPUT EXPRESSION:
+(s1 !=[s3] s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x001f]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: pushAccessVal(accessor: <accessor>);
+0x001b: collNeq(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0, popColl: 1, offsetColl: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABC", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abcdefghijkop", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: Nothing, 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abc", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABC", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: true
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "abcdefghijkop", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_always_equal", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "ABCDEFGHIJKOP", 2: "ABCDEFGHIJKOP", 3: Collator({"locale" : "mock_to_lower_string", "caseLevel" : false, "caseFirst" : "off", "strength" : 3, "numericOrdering" : false, "alternate" : "non-ignorable", "maxVariable" : "punct", "normalization" : false, "backwards" : false, "version" : "mock_version"})]
+RESULT: false
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_mixed.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_mixed.txt
new file mode 100644
index 00000000000..799febcef6a
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_mixed.txt
@@ -0,0 +1,267 @@
+# Golden test output of SBEPrimBinaryTest/SubMixed
+-- INPUT EXPRESSION:
+(s1 - s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: sub(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: null, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: false, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: true, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(-211.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(211.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0E-12)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: "abc", 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: null]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: false]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: true]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: "abc"]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Timestamp(0, 1668792433), 2: Timestamp(0, 1668792433)]
+RESULT: Nothing
+
diff --git a/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_numeric.txt b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_numeric.txt
new file mode 100644
index 00000000000..e76850369b5
--- /dev/null
+++ b/src/mongo/db/test_output/exec/sbe/s_b_e_prim_binary_test/sub_numeric.txt
@@ -0,0 +1,155 @@
+# Golden test output of SBEPrimBinaryTest/SubNumeric
+-- INPUT EXPRESSION:
+(s1 - s2)
+
+-- COMPILED EXPRESSION:
+[0x0000-0x0015]
+0x0000: pushAccessVal(accessor: <accessor>);
+0x0009: pushAccessVal(accessor: <accessor>);
+0x0012: sub(popLhs: 1, offsetLhs: 0, popRhs: 1, offsetRhs: 0);
+
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 12]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 23]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123ll]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: 123.500000L]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: Nothing, 2: NumberDecimal(223.500000000000)]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 12]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 23]
+RESULT: -11
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123ll]
+RESULT: -111ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: 123.500000L]
+RESULT: -111.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 12, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(-211.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 12]
+RESULT: 11
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 23]
+RESULT: 0
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123ll]
+RESULT: -100ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: 123.500000L]
+RESULT: -100.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 23, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(-200.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 12]
+RESULT: 111ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 23]
+RESULT: 100ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123ll]
+RESULT: 0ll
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: 123.500000L]
+RESULT: -0.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123ll, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(-100.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 12]
+RESULT: 111.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 23]
+RESULT: 100.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123ll]
+RESULT: 0.500000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: 123.500000L]
+RESULT: 0.000000L
+
+-- EXECUTE VARIATION:
+SLOTS: [1: 123.500000L, 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(-100.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: Nothing]
+RESULT: Nothing
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 12]
+RESULT: NumberDecimal(211.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 23]
+RESULT: NumberDecimal(200.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123ll]
+RESULT: NumberDecimal(100.500000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: 123.500000L]
+RESULT: NumberDecimal(100.000000000000)
+
+-- EXECUTE VARIATION:
+SLOTS: [1: NumberDecimal(223.500000000000), 2: NumberDecimal(223.500000000000)]
+RESULT: NumberDecimal(0E-12)
+