From 429397ffe297cea01a21ff86467d94b78b25d2b5 Mon Sep 17 00:00:00 2001 From: Peter Trommler Date: Sun, 16 May 2021 15:01:52 +0200 Subject: PPC NCG: Fix unsigned compare with 16-bit constants Fixes #19852 and #19609 --- compiler/GHC/CmmToAsm/PPC/CodeGen.hs | 3 ++- 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'])) -- cgit v1.2.1