cranelift-codegen 0.134.0

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

(attr MInst.AluRRRR (tag isaspec_generated))

(spec
    (MInst.AluRRRR alu_op size rd rn rm ra)
    (provide
        (match
            size
            ((Size64) (match alu_op ((MAdd) (= rd (bvadd ra (bvmul rn rm)))) ((MSub) (= rd (bvsub ra (bvmul rn rm))))))
            ((Size32)
                (match
                    alu_op
                    ((MAdd) (= rd (zero_ext 64 (bvadd (extract 31 0 ra) (bvmul (extract 31 0 rn) (extract 31 0 rm))))))
                    ((MSub) (= rd (zero_ext 64 (bvsub (extract 31 0 ra) (bvmul (extract 31 0 rn) (extract 31 0 rm))))))
                    ((UMAddL) (= rd (bvadd ra (bvmul (zero_ext 64 (extract 31 0 rn)) (zero_ext 64 (extract 31 0 rm))))))
                    ((SMAddL) (= rd (bvadd ra (bvmul (sign_ext 64 (extract 31 0 rn)) (sign_ext 64 (extract 31 0 rm))))))
                )
            )
        )
    )
    (require
        (match
            size
            ((Size64) (match alu_op ((MAdd) true) ((MSub) true)))
            ((Size32) (match alu_op ((MAdd) true) ((MSub) true) ((UMAddL) true) ((SMAddL) true)))
        )
    )
)