diff options
Diffstat (limited to 'kvx/SelectOp.vp')
-rw-r--r-- | kvx/SelectOp.vp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/kvx/SelectOp.vp b/kvx/SelectOp.vp index 4e1087f9..089afe1d 100644 --- a/kvx/SelectOp.vp +++ b/kvx/SelectOp.vp @@ -742,6 +742,8 @@ Nondetfunction gen_fmaf args := | _ => None end. +Require FPDivision32 FPDivision64. + Definition platform_builtin (b: platform_builtin) (args: exprlist) : option expr := match b with | BI_fmin => Some (Eop Ominf args) @@ -750,6 +752,24 @@ Definition platform_builtin (b: platform_builtin) (args: exprlist) : option expr | BI_fmaxf => Some (Eop Omaxfs args) | BI_fma => gen_fma args | BI_fmaf => gen_fmaf args + | BI_lround_ne => Some (Eop Olongoffloat_ne args) + | BI_luround_ne => Some (Eop Olonguoffloat_ne args) + | BI_fp_udiv32 => (match args with + | a:::b:::Enil => Some (FPDivision32.fp_divu32 a b) + | _ => None + end) + | BI_fp_udiv64 => (match args with + | a:::b:::Enil => Some (FPDivision64.fp_divu64 a b) + | _ => None + end) + | BI_fp_umod32 => (match args with + | a:::b:::Enil => Some (FPDivision32.fp_modu32 a b) + | _ => None + end) + | BI_fp_umod64 => (match args with + | a:::b:::Enil => Some (FPDivision64.fp_modu64 a b) + | _ => None + end) end. End SELECT. |