From 09a7870392dabf844c1ac39375568c2e8f9540ba Mon Sep 17 00:00:00 2001 From: Henrik Gramner Date: Mon, 14 Nov 2022 14:01:36 +0100 Subject: [PATCH 1/2] x86/insns.dat: Fix {er} usage on EVEX vcvtsi2* instructions The rounding specifier should be applied to src2, not src1. Furthermore, VCVTSI2SD with a 32-bit source operand does not support specifying a rounding mode (as no rounding can occur). Signed-off-by: Henrik Gramner --- x86/insns.dat | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x86/insns.dat b/x86/insns.dat index 75ae9e36..fc3e3810 100644 --- a/x86/insns.dat +++ b/x86/insns.dat @@ -4233,10 +4233,10 @@ VCVTSD2SI reg64,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w1 VCVTSD2SS xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.128.f2.0f.w1 5a /r ] AVX512,FUTURE VCVTSD2USI reg32,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w0 79 /r ] AVX512,FUTURE VCVTSD2USI reg64,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w1 79 /r ] AVX512,FUTURE -VCVTSI2SD xmmreg,xmmreg|er,rm32 [rvm:t1s: evex.nds.128.f2.0f.w0 2a /r ] AVX512,FUTURE -VCVTSI2SD xmmreg,xmmreg|er,rm64 [rvm:t1s: evex.nds.128.f2.0f.w1 2a /r ] AVX512,FUTURE -VCVTSI2SS xmmreg,xmmreg|er,rm32 [rvm:t1s: evex.nds.128.f3.0f.w0 2a /r ] AVX512,FUTURE -VCVTSI2SS xmmreg,xmmreg|er,rm64 [rvm:t1s: evex.nds.128.f3.0f.w1 2a /r ] AVX512,FUTURE +VCVTSI2SD xmmreg,xmmreg,rm32 [rvm:t1s: evex.nds.128.f2.0f.w0 2a /r ] AVX512,FUTURE +VCVTSI2SD xmmreg,xmmreg,rm64|er [rvm:t1s: evex.nds.128.f2.0f.w1 2a /r ] AVX512,FUTURE +VCVTSI2SS xmmreg,xmmreg,rm32|er [rvm:t1s: evex.nds.128.f3.0f.w0 2a /r ] AVX512,FUTURE +VCVTSI2SS xmmreg,xmmreg,rm64|er [rvm:t1s: evex.nds.128.f3.0f.w1 2a /r ] AVX512,FUTURE VCVTSS2SD xmmreg|mask|z,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.128.f3.0f.w0 5a /r ] AVX512,FUTURE VCVTSS2SI reg32,xmmrm32|er [rm:t1f32: evex.128.f3.0f.w0 2d /r ] AVX512,FUTURE VCVTSS2SI reg64,xmmrm32|er [rm:t1f32: evex.128.f3.0f.w1 2d /r ] AVX512,FUTURE From 0aca58518fee0b1c1d22f3ac7762118daeb9e83b Mon Sep 17 00:00:00 2001 From: Henrik Gramner Date: Mon, 14 Nov 2022 14:07:26 +0100 Subject: [PATCH 2/2] x86/insns.dat: Enable contracted forms for a few EVEX vcvt* instructions Most instructions support contracted forms, but those had been overlooked. Signed-off-by: Henrik Gramner --- x86/insns.dat | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/x86/insns.dat b/x86/insns.dat index fc3e3810..865562c3 100644 --- a/x86/insns.dat +++ b/x86/insns.dat @@ -4230,14 +4230,14 @@ VCVTQQ2PS xmmreg|mask|z,ymmrm256|b64 [rm:fv: evex.256.0f.w1 5b /r VCVTQQ2PS ymmreg|mask|z,zmmrm512|b64|er [rm:fv: evex.512.0f.w1 5b /r ] AVX512DQ,FUTURE VCVTSD2SI reg32,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w0 2d /r ] AVX512,FUTURE VCVTSD2SI reg64,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w1 2d /r ] AVX512,FUTURE -VCVTSD2SS xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.128.f2.0f.w1 5a /r ] AVX512,FUTURE +VCVTSD2SS xmmreg|mask|z,xmmreg*,xmmrm64|er [rvm:t1s: evex.nds.128.f2.0f.w1 5a /r ] AVX512,FUTURE VCVTSD2USI reg32,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w0 79 /r ] AVX512,FUTURE VCVTSD2USI reg64,xmmrm64|er [rm:t1f64: evex.128.f2.0f.w1 79 /r ] AVX512,FUTURE -VCVTSI2SD xmmreg,xmmreg,rm32 [rvm:t1s: evex.nds.128.f2.0f.w0 2a /r ] AVX512,FUTURE -VCVTSI2SD xmmreg,xmmreg,rm64|er [rvm:t1s: evex.nds.128.f2.0f.w1 2a /r ] AVX512,FUTURE -VCVTSI2SS xmmreg,xmmreg,rm32|er [rvm:t1s: evex.nds.128.f3.0f.w0 2a /r ] AVX512,FUTURE -VCVTSI2SS xmmreg,xmmreg,rm64|er [rvm:t1s: evex.nds.128.f3.0f.w1 2a /r ] AVX512,FUTURE -VCVTSS2SD xmmreg|mask|z,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.128.f3.0f.w0 5a /r ] AVX512,FUTURE +VCVTSI2SD xmmreg,xmmreg*,rm32 [rvm:t1s: evex.nds.128.f2.0f.w0 2a /r ] AVX512,FUTURE +VCVTSI2SD xmmreg,xmmreg*,rm64|er [rvm:t1s: evex.nds.128.f2.0f.w1 2a /r ] AVX512,FUTURE +VCVTSI2SS xmmreg,xmmreg*,rm32|er [rvm:t1s: evex.nds.128.f3.0f.w0 2a /r ] AVX512,FUTURE +VCVTSI2SS xmmreg,xmmreg*,rm64|er [rvm:t1s: evex.nds.128.f3.0f.w1 2a /r ] AVX512,FUTURE +VCVTSS2SD xmmreg|mask|z,xmmreg*,xmmrm32|sae [rvm:t1s: evex.nds.128.f3.0f.w0 5a /r ] AVX512,FUTURE VCVTSS2SI reg32,xmmrm32|er [rm:t1f32: evex.128.f3.0f.w0 2d /r ] AVX512,FUTURE VCVTSS2SI reg64,xmmrm32|er [rm:t1f32: evex.128.f3.0f.w1 2d /r ] AVX512,FUTURE VCVTSS2USI reg32,xmmrm32|er [rm:t1f32: evex.128.f3.0f.w0 79 /r ] AVX512,FUTURE