cranelift-codegen 0.134.0

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

(attr MInst.Extend (tag isaspec_generated))

(spec
    (MInst.Extend rd rn signed from_bits to_bits)
    (provide
        (=> (and (not signed) (= from_bits #x08) (= to_bits #x08)) (= rd (zero_ext 64 (extract 7 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x08) (= to_bits #x08)) (= rd (zero_ext 64 (sign_ext 32 (extract 7 0 (as rn (bv 64)))))))
        (=> (and (not signed) (= from_bits #x08) (= to_bits #x10)) (= rd (zero_ext 64 (extract 7 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x08) (= to_bits #x10)) (= rd (zero_ext 64 (sign_ext 32 (extract 7 0 (as rn (bv 64)))))))
        (=> (and (not signed) (= from_bits #x08) (= to_bits #x20)) (= rd (zero_ext 64 (extract 7 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x08) (= to_bits #x20)) (= rd (zero_ext 64 (sign_ext 32 (extract 7 0 (as rn (bv 64)))))))
        (=> (and (not signed) (= from_bits #x08) (= to_bits #x40)) (= rd (zero_ext 64 (extract 7 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x08) (= to_bits #x40)) (= rd (sign_ext 64 (extract 7 0 (as rn (bv 64))))))
        (=> (and (not signed) (= from_bits #x10) (= to_bits #x10)) (= rd (zero_ext 64 (extract 15 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x10) (= to_bits #x10)) (= rd (zero_ext 64 (sign_ext 32 (extract 15 0 (as rn (bv 64)))))))
        (=> (and (not signed) (= from_bits #x10) (= to_bits #x20)) (= rd (zero_ext 64 (extract 15 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x10) (= to_bits #x20)) (= rd (zero_ext 64 (sign_ext 32 (extract 15 0 (as rn (bv 64)))))))
        (=> (and (not signed) (= from_bits #x10) (= to_bits #x40)) (= rd (zero_ext 64 (extract 15 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x10) (= to_bits #x40)) (= rd (sign_ext 64 (extract 15 0 (as rn (bv 64))))))
        (=> (and (not signed) (= from_bits #x20) (= to_bits #x20)) (= rd (zero_ext 64 (extract 31 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x20) (= to_bits #x20)) (= rd (zero_ext 64 (extract 31 0 (as rn (bv 64))))))
        (=> (and (not signed) (= from_bits #x20) (= to_bits #x40)) (= rd (zero_ext 64 (extract 31 0 (as rn (bv 64))))))
        (=> (and signed (= from_bits #x20) (= to_bits #x40)) (= rd (sign_ext 64 (extract 31 0 (as rn (bv 64))))))
    )
    (require
        (or
            (and (not signed) (= from_bits #x08) (= to_bits #x08))
            (and signed (= from_bits #x08) (= to_bits #x08))
            (and (not signed) (= from_bits #x08) (= to_bits #x10))
            (and signed (= from_bits #x08) (= to_bits #x10))
            (and (not signed) (= from_bits #x08) (= to_bits #x20))
            (and signed (= from_bits #x08) (= to_bits #x20))
            (and (not signed) (= from_bits #x08) (= to_bits #x40))
            (and signed (= from_bits #x08) (= to_bits #x40))
            (and (not signed) (= from_bits #x10) (= to_bits #x10))
            (and signed (= from_bits #x10) (= to_bits #x10))
            (and (not signed) (= from_bits #x10) (= to_bits #x20))
            (and signed (= from_bits #x10) (= to_bits #x20))
            (and (not signed) (= from_bits #x10) (= to_bits #x40))
            (and signed (= from_bits #x10) (= to_bits #x40))
            (and (not signed) (= from_bits #x20) (= to_bits #x20))
            (and signed (= from_bits #x20) (= to_bits #x20))
            (and (not signed) (= from_bits #x20) (= to_bits #x40))
            (and signed (= from_bits #x20) (= to_bits #x40))
        )
    )
)