diff --git a/testsuite/tests/codeGen/should_run/T14754.hs b/testsuite/tests/codeGen/should_run/T14754.hs
new file mode 100644
index 0000000000000000000000000000000000000000..181659d4eb6e1f274accaa2e1d9904d827b5c171
--- /dev/null
+++ b/testsuite/tests/codeGen/should_run/T14754.hs
@@ -0,0 +1,15 @@
+module Main where
+
+import Debug.Trace
+
+main :: IO ()
+main = print (alg 3 1)
+
+alg :: Word -> Word -> Word
+alg a b
+  | traceShow (a, b) False = undefined
+  | c < b = alg b c
+  | c > b = alg c b
+  | otherwise = c
+  where
+    c = a - b
diff --git a/testsuite/tests/codeGen/should_run/T14754.stderr b/testsuite/tests/codeGen/should_run/T14754.stderr
new file mode 100644
index 0000000000000000000000000000000000000000..42c78ed097424ae337cbac85046a9b57c1a9311c
--- /dev/null
+++ b/testsuite/tests/codeGen/should_run/T14754.stderr
@@ -0,0 +1,2 @@
+(3,1)
+(2,1)
diff --git a/testsuite/tests/codeGen/should_run/T14754.stdout b/testsuite/tests/codeGen/should_run/T14754.stdout
new file mode 100644
index 0000000000000000000000000000000000000000..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d
--- /dev/null
+++ b/testsuite/tests/codeGen/should_run/T14754.stdout
@@ -0,0 +1 @@
+1
diff --git a/testsuite/tests/codeGen/should_run/all.T b/testsuite/tests/codeGen/should_run/all.T
index 145365e802ccb0a7bc2705548b03fe26737cfd6a..9403c4b1e1971b7b78432fb0769bc67899eb6dd4 100644
--- a/testsuite/tests/codeGen/should_run/all.T
+++ b/testsuite/tests/codeGen/should_run/all.T
@@ -166,3 +166,4 @@ test('T13825-unit',
      compile_and_run,
      ['-package ghc'])
 test('T14619', normal, compile_and_run, [''])
+test('T14754', normal, compile_and_run, [''])