[commit: ghc] ghc-8.6: Fix a major copy'n'paste error in LLVM CodeGen (9a4ac75)
git at git.haskell.org
git at git.haskell.org
Tue Jul 31 20:34:20 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : ghc-8.6
Link : http://ghc.haskell.org/trac/ghc/changeset/9a4ac7567835c4ddf90d44500d4be7ddcaef4334/ghc
>---------------------------------------------------------------
commit 9a4ac7567835c4ddf90d44500d4be7ddcaef4334
Author: Krzysztof Gogolewski <krz.gogolewski at gmail.com>
Date: Sun Jul 22 17:33:32 2018 +0200
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
(cherry picked from commit f629442be93f4608e6bb53bfe2264a406230c546)
>---------------------------------------------------------------
9a4ac7567835c4ddf90d44500d4be7ddcaef4334
compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 2 +-
testsuite/tests/numeric/should_run/all.T | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs
index 678fffa..f25cb79 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 140fa6c..eac0278 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'])
More information about the ghc-commits
mailing list