cranelift-codegen 0.134.0

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

(attr MInst.VecDupImm (tag isaspec_generated))

(spec
    (MInst.VecDupImm rd imm invert size)
    (provide
        (match
            size
            ((Size32x2)
                (and
                    (=>
                        (not invert)
                        (=
                            rd
                            (zero_ext
                                128
                                (replicate
                                    (replicate
                                        (zero_ext
                                            32
                                            (concat
                                                (concat
                                                    (concat
                                                        (concat
                                                            (concat
                                                                (concat
                                                                    (concat (extract 2 2 (extract 7 5 (:imm imm))) (extract 1 1 (extract 7 5 (:imm imm))))
                                                                    (extract 0 0 (extract 7 5 (:imm imm)))
                                                                )
                                                                (extract 4 4 (extract 4 0 (:imm imm)))
                                                            )
                                                            (extract 3 3 (extract 4 0 (:imm imm)))
                                                        )
                                                        (extract 2 2 (extract 4 0 (:imm imm)))
                                                    )
                                                    (extract 1 1 (extract 4 0 (:imm imm)))
                                                )
                                                (extract 0 0 (extract 4 0 (:imm imm)))
                                            )
                                        )
                                        2
                                    )
                                    1
                                )
                            )
                        )
                    )
                    (=>
                        invert
                        (=
                            rd
                            (zero_ext
                                128
                                (bvnot
                                    (replicate
                                        (replicate
                                            (zero_ext
                                                32
                                                (concat
                                                    (concat
                                                        (concat
                                                            (concat
                                                                (concat
                                                                    (concat
                                                                        (concat (extract 2 2 (extract 7 5 (:imm imm))) (extract 1 1 (extract 7 5 (:imm imm))))
                                                                        (extract 0 0 (extract 7 5 (:imm imm)))
                                                                    )
                                                                    (extract 4 4 (extract 4 0 (:imm imm)))
                                                                )
                                                                (extract 3 3 (extract 4 0 (:imm imm)))
                                                            )
                                                            (extract 2 2 (extract 4 0 (:imm imm)))
                                                        )
                                                        (extract 1 1 (extract 4 0 (:imm imm)))
                                                    )
                                                    (extract 0 0 (extract 4 0 (:imm imm)))
                                                )
                                            )
                                            2
                                        )
                                        1
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )
    (require (match size ((Size32x2) (or (not invert) invert))))
)