Path: blob/main/cranelift/assembler-x64/meta/src/instructions/sqrt.rs
1693 views
use crate::dsl::{Feature::*, Inst, Length::*, Location::*};1use crate::dsl::{align, fmt, inst, r, rex, rw, vex, w};23#[rustfmt::skip] // Keeps instructions on a single line.4pub fn list() -> Vec<Inst> {5vec![6inst("sqrtss", fmt("A", [rw(xmm1), r(xmm_m32)]), rex([0xF3, 0x0F, 0x51]).r(), (_64b | compat) & sse).alt(avx, "vsqrtss_b"),7inst("sqrtsd", fmt("A", [rw(xmm1), r(xmm_m64)]), rex([0xF2, 0x0F, 0x51]).r(), (_64b | compat) & sse2).alt(avx, "vsqrtsd_b"),8inst("sqrtps", fmt("A", [w(xmm1), r(align(xmm_m128))]), rex([0x0F, 0x51]).r(), (_64b | compat) & sse).alt(avx, "vsqrtps_b"),9inst("sqrtpd", fmt("A", [w(xmm1), r(align(xmm_m128))]), rex([0x66, 0x0F, 0x51]).r(), (_64b | compat) & sse2).alt(avx, "vsqrtpd_b"),10inst("vsqrtss", fmt("B", [w(xmm1), r(xmm2), r(xmm_m32)]), vex(LIG)._f3()._0f().op(0x51).r(), (_64b | compat) & avx),11inst("vsqrtsd", fmt("B", [w(xmm1), r(xmm2), r(xmm_m64)]), vex(LIG)._f2()._0f().op(0x51).r(), (_64b | compat) & avx),12inst("vsqrtps", fmt("B", [w(xmm1), r(xmm_m128)]), vex(L128)._0f().op(0x51).r(), (_64b | compat) & avx),13inst("vsqrtpd", fmt("B", [w(xmm1), r(xmm_m128)]), vex(L128)._66()._0f().op(0x51).r(), (_64b | compat) & avx),14]15}161718