cranelift-codegen 0.134.0

Low-level code generator library
Documentation
;; GENERATED BY `isaspec`. DO NOT EDIT!!!

(attr MInst.FpuRRR (tag isaspec_generated))

(spec
    (MInst.FpuRRR fpu_op size rd rn rm)
    (provide
        (match
            size
            ((Size64)
                (match
                    fpu_op
                    ((Add)
                        (with
                            (t3)
                            (and
                                (= t3 (FPAdd! (extract 63 0 (conv_to 128 (as rn (bv 64)))) (extract 63 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Sub)
                        (with
                            (t3)
                            (and
                                (= t3 (FPSub! (extract 63 0 (conv_to 128 (as rn (bv 64)))) (extract 63 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Mul)
                        (with
                            (t3)
                            (and
                                (= t3 (FPMul! (extract 63 0 (conv_to 128 (as rn (bv 64)))) (extract 63 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Div)
                        (with
                            (t3)
                            (and
                                (= t3 (FPDiv! (extract 63 0 (conv_to 128 (as rn (bv 64)))) (extract 63 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Min)
                        (with
                            (t3)
                            (and
                                (= t3 (FPMin! (extract 63 0 (conv_to 128 (as rn (bv 64)))) (extract 63 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Max)
                        (with
                            (t3)
                            (and
                                (= t3 (FPMax! (extract 63 0 (conv_to 128 (as rn (bv 64)))) (extract 63 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                )
            )
            ((Size32)
                (match
                    fpu_op
                    ((Add)
                        (with
                            (t3)
                            (and
                                (= t3 (FPAdd! (extract 31 0 (conv_to 128 (as rn (bv 64)))) (extract 31 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Sub)
                        (with
                            (t3)
                            (and
                                (= t3 (FPSub! (extract 31 0 (conv_to 128 (as rn (bv 64)))) (extract 31 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Mul)
                        (with
                            (t3)
                            (and
                                (= t3 (FPMul! (extract 31 0 (conv_to 128 (as rn (bv 64)))) (extract 31 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Div)
                        (with
                            (t3)
                            (and
                                (= t3 (FPDiv! (extract 31 0 (conv_to 128 (as rn (bv 64)))) (extract 31 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Min)
                        (with
                            (t3)
                            (and
                                (= t3 (FPMin! (extract 31 0 (conv_to 128 (as rn (bv 64)))) (extract 31 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                    ((Max)
                        (with
                            (t3)
                            (and
                                (= t3 (FPMax! (extract 31 0 (conv_to 128 (as rn (bv 64)))) (extract 31 0 (conv_to 128 (as rm (bv 64)))) fpcr))
                                (= (conv_to 128 (as rd (bv 64))) (zero_ext 128 t3))
                            )
                        )
                    )
                )
            )
        )
    )
    (require
        (match
            size
            ((Size64) (match fpu_op ((Add) true) ((Sub) true) ((Mul) true) ((Div) true) ((Min) true) ((Max) true)))
            ((Size32) (match fpu_op ((Add) true) ((Sub) true) ((Mul) true) ((Div) true) ((Min) true) ((Max) true)))
        )
    )
)