diff options
author | Ian Lynagh <igloo@earth.li> | 2012-04-21 15:03:23 +0100 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2012-04-21 15:03:23 +0100 |
commit | 5136d64e47155070f9c7129b53156545a79b5e00 (patch) | |
tree | f8a1341382275a461ac286469f1c3341277f25ac /compiler/llvmGen | |
parent | 6508697f398fa4e9241cec88991772eda86e37b3 (diff) | |
download | haskell-5136d64e47155070f9c7129b53156545a79b5e00.tar.gz |
Add a quotRemWord2 primop
It allows you to do
(high, low) `quotRem` d
provided high < d.
Currently only has an inefficient fallback implementation.
Diffstat (limited to 'compiler/llvmGen')
-rw-r--r-- | compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs index 70fa51aaa2..74311e0a51 100644 --- a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs +++ b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs @@ -473,12 +473,13 @@ cmmPrimOpFunctions env mop (MO_PopCnt w) -> fsLit $ "llvm.ctpop." ++ show (widthToLlvmInt w) - MO_S_QuotRem {} -> unsupported - MO_U_QuotRem {} -> unsupported - MO_Add2 {} -> unsupported - MO_U_Mul2 {} -> unsupported - MO_WriteBarrier -> unsupported - MO_Touch -> unsupported + MO_S_QuotRem {} -> unsupported + MO_U_QuotRem {} -> unsupported + MO_U_QuotRem2 {} -> unsupported + MO_Add2 {} -> unsupported + MO_U_Mul2 {} -> unsupported + MO_WriteBarrier -> unsupported + MO_Touch -> unsupported where intrinTy1 = (if getLlvmVer env >= 28 |