diff options
author | Peter Trommler <ptrommler@acm.org> | 2021-05-16 15:01:52 +0200 |
---|---|---|
committer | Peter Trommler <ptrommler@acm.org> | 2021-05-16 18:58:50 +0200 |
commit | 429397ffe297cea01a21ff86467d94b78b25d2b5 (patch) | |
tree | a47e0e3e07b0adbcf1dc8667435b887f114da2a7 | |
parent | fc9546caf3e16db070bfc7bb5523c38595233e26 (diff) | |
download | haskell-wip/T19852.tar.gz |
PPC NCG: Fix unsigned compare with 16-bit constantswip/T19852
Fixes #19852 and #19609
-rw-r--r-- | compiler/GHC/CmmToAsm/PPC/CodeGen.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/ghci/should_run/UnboxedTuples/unboxedtuples.T | 1 |
2 files changed, 2 insertions, 2 deletions
diff --git a/compiler/GHC/CmmToAsm/PPC/CodeGen.hs b/compiler/GHC/CmmToAsm/PPC/CodeGen.hs index c3e66c02ac..e3170c1bea 100644 --- a/compiler/GHC/CmmToAsm/PPC/CodeGen.hs +++ b/compiler/GHC/CmmToAsm/PPC/CodeGen.hs @@ -978,7 +978,8 @@ condIntCode' _ cond width x (CmmLit (CmmInt y rep)) | Just src2 <- makeImmediate rep (not $ condUnsigned cond) y = do let op_len = max W32 width - let extend = extendSExpr width op_len + let extend = if condUnsigned cond then extendUExpr width op_len + else extendSExpr width op_len (src1, code) <- getSomeReg (extend x) let format = intFormat op_len code' = code `snocOL` diff --git a/testsuite/tests/ghci/should_run/UnboxedTuples/unboxedtuples.T b/testsuite/tests/ghci/should_run/UnboxedTuples/unboxedtuples.T index 530c9a4ac9..4166c82f7f 100644 --- a/testsuite/tests/ghci/should_run/UnboxedTuples/unboxedtuples.T +++ b/testsuite/tests/ghci/should_run/UnboxedTuples/unboxedtuples.T @@ -1,7 +1,6 @@ test('UnboxedTuples', [ extra_files(['Obj.hs', 'ByteCode.hs', 'Common.hs-incl']), req_interp, - when(arch('powerpc64le'), expect_broken(19609)), extra_ways(['ghci']), when(config.have_ext_interp, extra_ways(['ghci', 'ghci-ext'])), when(config.have_ext_interp and config.have_profiling, extra_ways(['ghci', 'ghci-ext', 'ghci-ext-prof'])) |