never executed always true always false
1 module GHC.CmmToAsm.PPC.Cond (
2 Cond(..),
3 condNegate,
4 condUnsigned,
5 )
6
7 where
8
9 import GHC.Prelude
10
11 import GHC.Utils.Panic
12
13 data Cond
14 = ALWAYS
15 | EQQ
16 | GE
17 | GEU
18 | GTT
19 | GU
20 | LE
21 | LEU
22 | LTT
23 | LU
24 | NE
25 deriving Eq
26
27
28 condNegate :: Cond -> Cond
29 condNegate ALWAYS = panic "condNegate: ALWAYS"
30 condNegate EQQ = NE
31 condNegate GE = LTT
32 condNegate GEU = LU
33 condNegate GTT = LE
34 condNegate GU = LEU
35 condNegate LE = GTT
36 condNegate LEU = GU
37 condNegate LTT = GE
38 condNegate LU = GEU
39 condNegate NE = EQQ
40
41 -- Condition utils
42 condUnsigned :: Cond -> Bool
43 condUnsigned GU = True
44 condUnsigned LU = True
45 condUnsigned GEU = True
46 condUnsigned LEU = True
47 condUnsigned _ = False