summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Gogolewski <krz.gogolewski@gmail.com>2018-07-22 17:33:32 +0200
committerKrzysztof Gogolewski <krz.gogolewski@gmail.com>2018-07-22 17:33:32 +0200
commitf629442be93f4608e6bb53bfe2264a406230c546 (patch)
treeaf435a3efbb1167abec51b63879d2b47c98f0080
parent4ea9311cc5c3b99ea6915bee23f0a6776731f20e (diff)
downloadhaskell-f629442be93f4608e6bb53bfe2264a406230c546.tar.gz
Fix a major copy'n'paste error in LLVM CodeGen
Summary: In D4592, `AddWordC` is lowered as an unsigned subtraction instead of an unsigned addition when compiling with LLVM. This patch rectifies that. Reviewers: angerman, bgamari, monoidal Reviewed By: angerman, bgamari, monoidal Subscribers: osa1, rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4969
-rw-r--r--compiler/llvmGen/LlvmCodeGen/CodeGen.hs2
-rw-r--r--testsuite/tests/numeric/should_run/all.T2
2 files changed, 2 insertions, 2 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
index 678fffa4c1..f25cb79367 100644
--- a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
+++ b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
@@ -804,7 +804,7 @@ cmmPrimOpFunctions mop = do
++ showSDoc dflags (ppr $ widthToLlvmInt w)
MO_Add2 w -> fsLit $ "llvm.uadd.with.overflow."
++ showSDoc dflags (ppr $ widthToLlvmInt w)
- MO_AddWordC w -> fsLit $ "llvm.usub.with.overflow."
+ MO_AddWordC w -> fsLit $ "llvm.uadd.with.overflow."
++ showSDoc dflags (ppr $ widthToLlvmInt w)
MO_SubWordC w -> fsLit $ "llvm.usub.with.overflow."
++ showSDoc dflags (ppr $ widthToLlvmInt w)
diff --git a/testsuite/tests/numeric/should_run/all.T b/testsuite/tests/numeric/should_run/all.T
index 140fa6c50b..eac0278343 100644
--- a/testsuite/tests/numeric/should_run/all.T
+++ b/testsuite/tests/numeric/should_run/all.T
@@ -62,7 +62,7 @@ test('CarryOverflow', omit_ways(['ghci']), compile_and_run, [''])
test('T9407', normal, compile_and_run, [''])
test('T9810', normal, compile_and_run, [''])
test('T10011', normal, compile_and_run, [''])
-test('T10962', omit_ways(['ghci']), compile_and_run, ['-O2'])
+test('T10962', [omit_ways(['ghci']), extra_ways(['llvm'])], compile_and_run, ['-O2'])
test('T11702', extra_ways(['optasm']), compile_and_run, [''])
test('T12136', normal, compile_and_run, [''])
test('T15301', normal, compile_and_run, ['-O2'])