@@ -2157,6 +2157,13 @@ void Assembler::vcvttps2dq(XMMRegister dst, XMMRegister src, int vector_len) {
21572157 emit_int16(0x5B, (0xC0 | encode));
21582158}
21592159
2160+ void Assembler::vcvttpd2dq(XMMRegister dst, XMMRegister src, int vector_len) {
2161+ assert(vector_len <= AVX_256bit ? VM_Version::supports_avx() : VM_Version::supports_evex(), "");
2162+ InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
2163+ int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes);
2164+ emit_int16((unsigned char)0xE6, (0xC0 | encode));
2165+ }
2166+
21602167void Assembler::vcvtps2dq(XMMRegister dst, XMMRegister src, int vector_len) {
21612168 assert(vector_len <= AVX_256bit ? VM_Version::supports_avx() : VM_Version::supports_evex(), "");
21622169 InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
@@ -2165,47 +2172,47 @@ void Assembler::vcvtps2dq(XMMRegister dst, XMMRegister src, int vector_len) {
21652172}
21662173
21672174void Assembler::evcvttps2qq(XMMRegister dst, XMMRegister src, int vector_len) {
2168- assert(UseAVX > 2 && VM_Version::supports_avx512dq(), "");
2175+ assert(VM_Version::supports_avx512dq(), "");
21692176 InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
21702177 attributes.set_is_evex_instruction();
21712178 int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes);
21722179 emit_int16(0x7A, (0xC0 | encode));
21732180}
21742181
21752182void Assembler::evcvtpd2qq(XMMRegister dst, XMMRegister src, int vector_len) {
2176- assert(UseAVX > 2 && VM_Version::supports_avx512dq(), "");
2183+ assert(VM_Version::supports_avx512dq(), "");
21772184 InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
21782185 attributes.set_is_evex_instruction();
21792186 int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes);
21802187 emit_int16(0x7B, (0xC0 | encode));
21812188}
21822189
21832190void Assembler::evcvtqq2ps(XMMRegister dst, XMMRegister src, int vector_len) {
2184- assert(UseAVX > 2 && VM_Version::supports_avx512dq(), "");
2191+ assert(VM_Version::supports_avx512dq(), "");
21852192 InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
21862193 attributes.set_is_evex_instruction();
21872194 int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_NONE, VEX_OPCODE_0F, &attributes);
21882195 emit_int16(0x5B, (0xC0 | encode));
21892196}
21902197
21912198void Assembler::evcvttpd2qq(XMMRegister dst, XMMRegister src, int vector_len) {
2192- assert(UseAVX > 2 && VM_Version::supports_avx512dq(), "");
2199+ assert(VM_Version::supports_avx512dq(), "");
21932200 InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
21942201 attributes.set_is_evex_instruction();
21952202 int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes);
21962203 emit_int16(0x7A, (0xC0 | encode));
21972204}
21982205
21992206void Assembler::evcvtqq2pd(XMMRegister dst, XMMRegister src, int vector_len) {
2200- assert(UseAVX > 2 && VM_Version::supports_avx512dq(), "");
2207+ assert(VM_Version::supports_avx512dq(), "");
22012208 InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
22022209 attributes.set_is_evex_instruction();
22032210 int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
22042211 emit_int16((unsigned char)0xE6, (0xC0 | encode));
22052212}
22062213
22072214void Assembler::evpmovwb(XMMRegister dst, XMMRegister src, int vector_len) {
2208- assert(UseAVX > 2 && VM_Version::supports_avx512bw(), "");
2215+ assert(VM_Version::supports_avx512bw(), "");
22092216 InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true);
22102217 attributes.set_is_evex_instruction();
22112218 int encode = vex_prefix_and_encode(src->encoding(), 0, dst->encoding(), VEX_SIMD_F3, VEX_OPCODE_0F_38, &attributes);
0 commit comments