public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes
@ 2021-02-15 13:35 Jan Beulich
  2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:35 UTC (permalink / raw)
  To: Binutils

There are more quirks afaict, but I wanted to start somewhere.

1: make common property tests common
2: record register use for SIMD insns without respective explicit operands
3: honor template rather than actual operands when updating i.xstate
4: CVTPI2PD has special behavior

Jan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] x86: make common property tests common
  2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
@ 2021-02-15 13:37 ` Jan Beulich
  2021-02-15 13:37 ` [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands Jan Beulich
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:37 UTC (permalink / raw)
  To: Binutils

There's no need to run the exact same test twice. Move the tests which
don't differ between 32- and 64-bit to the "Common tests" section.

gas/
2021-02-XX  Jan Beulich  <jbeulich@suse.com>

	* testsuite/gas/i386/i386.exp: Move bitness-independent property
	tests to bitness independent section.
	* testsuite/gas/i386/x86-64-property-2.d,
	testsuite/gas/i386/x86-64-property-3.d,
	testsuite/gas/i386/x86-64-property-4.d,
	testsuite/gas/i386/x86-64-property-5.d,
	testsuite/gas/i386/x86-64-property-6.d,
	testsuite/gas/i386/x86-64-property-10.d,
	testsuite/gas/i386/x86-64-property-11.d,
	testsuite/gas/i386/x86-64-property-12.d,
	testsuite/gas/i386/x86-64-property-13.d: Delete.

--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -655,15 +655,6 @@ if [gas_32_check] then {
 	run_dump_test "unique"
 
 	run_dump_test "property-1"
-	run_dump_test "property-2"
-	run_dump_test "property-3"
-	run_dump_test "property-4"
-	run_dump_test "property-5"
-	run_dump_test "property-6"
-	run_dump_test "property-10"
-	run_dump_test "property-11"
-	run_dump_test "property-12"
-	run_dump_test "property-13"
 
 	if {[istarget "*-*-linux*"]} then {
 	    run_dump_test "align-branch-3"
@@ -725,6 +716,16 @@ if {[is_elf_format] || [istarget "*-*-vx
     run_dump_test "dw2-compressed-3a"
     run_dump_test "dw2-compressed-3b"
 
+    run_dump_test "property-2"
+    run_dump_test "property-3"
+    run_dump_test "property-4"
+    run_dump_test "property-5"
+    run_dump_test "property-6"
+    run_dump_test "property-10"
+    run_dump_test "property-11"
+    run_dump_test "property-12"
+    run_dump_test "property-13"
+
     if {![istarget "*-*-dragonfly*"]
 	&& ![istarget "*-*-gnu*"]
 	&& ![istarget "*-*-freebsd*"]
@@ -1274,18 +1275,9 @@ if [gas_64_check] then {
 	run_dump_test "x86-64-unique"
 
 	run_dump_test "x86-64-property-1"
-	run_dump_test "x86-64-property-2"
-	run_dump_test "x86-64-property-3"
-	run_dump_test "x86-64-property-4"
-	run_dump_test "x86-64-property-5"
-	run_dump_test "x86-64-property-6"
 	run_dump_test "x86-64-property-7"
 	run_dump_test "x86-64-property-8"
 	run_dump_test "x86-64-property-9"
-	run_dump_test "x86-64-property-10"
-	run_dump_test "x86-64-property-11"
-	run_dump_test "x86-64-property-12"
-	run_dump_test "x86-64-property-13"
 	run_dump_test "x86-64-property-14"
 
 	if {[istarget "*-*-linux*"]} then {
--- a/gas/testsuite/gas/i386/x86-64-property-2.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 2
-#source: property-2.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline
-	x86 feature used: x86
--- a/gas/testsuite/gas/i386/x86-64-property-3.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 3
-#source: property-3.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline, x86-64-v2
-	x86 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-4.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 4
-#source: property-4.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline, x86-64-v3
-	x86 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-5.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 5
-#source: property-5.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline, x86-64-v4
-	x86 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-6.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 6
-#source: property-6.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline, x86-64-v4
-	x86 feature used: x86, MASK
--- a/gas/testsuite/gas/i386/x86-64-property-10.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 10
-#source: property-10.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline
-	x86 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-11.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 11
-#source: property-11.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline, x86-64-v3
-	x86 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-12.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 12
-#source: property-12.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline, x86-64-v4
-	x86 feature used: x86, XMM, MASK
--- a/gas/testsuite/gas/i386/x86-64-property-13.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 13
-#source: property-13.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-Displaying notes found in: .note.gnu.property
-[ 	]+Owner[ 	]+Data size[ 	]+Description
-  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: x86-64-baseline
-	x86 feature used: x86, XMM, YMM, ZMM, MASK


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands
  2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
  2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
@ 2021-02-15 13:37 ` Jan Beulich
  2021-02-15 13:38 ` [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate Jan Beulich
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:37 UTC (permalink / raw)
  To: Binutils

VZERO{ALL,UPPER} modify YMM registers despite having no operands.

While {,V}{LD,ST}MXCSR don't modify XMM registers, MXCSR and XMMn
collectively form underlying machine state.

gas/
2021-02-XX  Jan Beulich  <jbeulich@suse.com>

	* config/tc-i386.c (output_insn): Handle ldmxcsr, stmxcsr,
	vldmxcsr, vstmxcsr, vzeroall, and vzeroupper.
	* testsuite/gas/i386/property-ldmxcsr.s,
	testsuite/gas/i386/property-ldmxcsr.d,
	testsuite/gas/i386/property-vldmxcsr.s,
	testsuite/gas/i386/property-vldmxcsr.d,
	testsuite/gas/i386/property-vzeroall.s,
	testsuite/gas/i386/property-vzeroall.d: New.
	* testsuite/gas/i386/i386.exp: Run new tests.

--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -9208,10 +9208,12 @@ output_insn (void)
 	  || i.tm.cpu_flags.bitfield.cpu687
 	  || i.tm.cpu_flags.bitfield.cpufisttp)
 	x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_X87;
+
       if ((i.xstate & xstate_mmx)
 	  || i.tm.base_opcode == 0xf77 /* emms */
 	  || i.tm.base_opcode == 0xf0e /* femms */)
 	x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MMX;
+
       if (i.index_reg)
 	{
 	  if (i.index_reg->reg_type.bitfield.zmmword)
@@ -9221,10 +9223,20 @@ output_insn (void)
 	  else if (i.index_reg->reg_type.bitfield.xmmword)
 	    i.xstate |= xstate_xmm;
 	}
+
+      /* vzeroall / vzeroupper */
+      if (i.tm.base_opcode == 0x77 && i.tm.cpu_flags.bitfield.cpuavx)
+	i.xstate |= xstate_ymm;
+
       if ((i.xstate & xstate_xmm)
+	  /* ldmxcsr / stmxcsr */
+	  || (i.tm.base_opcode == 0xfae && i.tm.cpu_flags.bitfield.cpusse)
+	  /* vldmxcsr / vstmxcsr */
+	  || (i.tm.base_opcode == 0xae && i.tm.cpu_flags.bitfield.cpuavx)
 	  || i.tm.cpu_flags.bitfield.cpuwidekl
 	  || i.tm.cpu_flags.bitfield.cpukl)
 	x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XMM;
+
       if ((i.xstate & xstate_ymm) == xstate_ymm)
 	x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_YMM;
       if ((i.xstate & xstate_zmm) == xstate_zmm)
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -725,6 +725,9 @@ if {[is_elf_format] || [istarget "*-*-vx
     run_dump_test "property-11"
     run_dump_test "property-12"
     run_dump_test "property-13"
+    run_dump_test "property-ldmxcsr"
+    run_dump_test "property-vldmxcsr"
+    run_dump_test "property-vzeroall"
 
     if {![istarget "*-*-dragonfly*"]
 	&& ![istarget "*-*-gnu*"]
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-ldmxcsr.d
@@ -0,0 +1,9 @@
+#name: i386 property ldmxcsr
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA used: x86-64-baseline
+	x86 feature used: x86, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-ldmxcsr.s
@@ -0,0 +1,2 @@
+	.text
+	ldmxcsr (%eax)
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vldmxcsr.d
@@ -0,0 +1,9 @@
+#name: i386 property vldmxcsr
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA used: x86-64-baseline, x86-64-v3
+	x86 feature used: x86, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vldmxcsr.s
@@ -0,0 +1,2 @@
+	.text
+	vldmxcsr (%eax)
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vzeroall.d
@@ -0,0 +1,9 @@
+#name: i386 property vzeroall
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA used: x86-64-baseline, x86-64-v3
+	x86 feature used: x86, XMM, YMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vzeroall.s
@@ -0,0 +1,2 @@
+	.text
+	vzeroall


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate
  2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
  2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
  2021-02-15 13:37 ` [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands Jan Beulich
@ 2021-02-15 13:38 ` Jan Beulich
  2021-02-15 13:38 ` [PATCH 4/4] x86: CVTPI2PD has special behavior Jan Beulich
  2021-02-15 14:52 ` [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes H.J. Lu
  4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:38 UTC (permalink / raw)
  To: Binutils

This undoes a change to md_assemble() that 32930e4edbc0 ("x86: Support
GNU_PROPERTY_X86_ISA_1_V[234] marker") did without any explanation. This
broke a CVTPI2PS property test that a subsequent test will add, and the
updates to existing tests also demonstrate what was wrong: For example,
AVX insns update the full YMM, even if a Vex128 variant is in use.

gas/
2021-02-XX  Jan Beulich  <jbeulich@suse.com>

	* config/tc-i386.c (md_assemble): Use template rather than
	actuals when updating i.xstate.
	* testsuite/gas/i386/property-4.d,
	testsuite/gas/i386/property-5.d,
	testsuite/gas/i386/property-12.d: Adjust expectations.

--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -4874,7 +4874,7 @@ md_assemble (char *line)
   for (j = 0; j < i.operands; j++)
     {
       i.types[j] = operand_type_and (i.types[j], i.tm.operand_types[j]);
-      switch (i.types[j].bitfield.class)
+      switch (i.tm.operand_types[j].bitfield.class)
 	{
 	default:
 	  break;
@@ -4885,13 +4885,13 @@ md_assemble (char *line)
 	  i.xstate |= xstate_mask;
 	  break;
 	case RegSIMD:
-	  if (i.types[j].bitfield.tmmword)
+	  if (i.tm.operand_types[j].bitfield.tmmword)
 	    i.xstate |= xstate_tmm;
-	  else if (i.types[j].bitfield.zmmword)
+	  else if (i.tm.operand_types[j].bitfield.zmmword)
 	    i.xstate |= xstate_zmm;
-	  else if (i.types[j].bitfield.ymmword)
+	  else if (i.tm.operand_types[j].bitfield.ymmword)
 	    i.xstate |= xstate_ymm;
-	  else if (i.types[j].bitfield.xmmword)
+	  else if (i.tm.operand_types[j].bitfield.xmmword)
 	    i.xstate |= xstate_xmm;
 	  break;
 	}
--- a/gas/testsuite/gas/i386/property-4.d
+++ b/gas/testsuite/gas/i386/property-4.d
@@ -6,4 +6,4 @@ Displaying notes found in: .note.gnu.pro
 [ 	]+Owner[ 	]+Data size[ 	]+Description
   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
       Properties: x86 ISA used: x86-64-baseline, x86-64-v3
-	x86 feature used: x86, XMM
+	x86 feature used: x86, XMM, YMM
--- a/gas/testsuite/gas/i386/property-5.d
+++ b/gas/testsuite/gas/i386/property-5.d
@@ -6,4 +6,4 @@ Displaying notes found in: .note.gnu.pro
 [ 	]+Owner[ 	]+Data size[ 	]+Description
   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
       Properties: x86 ISA used: x86-64-baseline, x86-64-v4
-	x86 feature used: x86, XMM
+	x86 feature used: x86, XMM, YMM, ZMM
--- a/gas/testsuite/gas/i386/property-12.d
+++ b/gas/testsuite/gas/i386/property-12.d
@@ -6,4 +6,4 @@ Displaying notes found in: .note.gnu.pro
 [ 	]+Owner[ 	]+Data size[ 	]+Description
   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
       Properties: x86 ISA used: x86-64-baseline, x86-64-v4
-	x86 feature used: x86, XMM, MASK
+	x86 feature used: x86, XMM, YMM, ZMM, MASK


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 4/4] x86: CVTPI2PD has special behavior
  2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
                   ` (2 preceding siblings ...)
  2021-02-15 13:38 ` [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate Jan Beulich
@ 2021-02-15 13:38 ` Jan Beulich
  2021-02-15 14:52 ` [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes H.J. Lu
  4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:38 UTC (permalink / raw)
  To: Binutils

CVTPI2PD with a memory operand, unlike CVTPI2PS, doesn't engage MMX
logic. Therefore it
- has a proper AVX equivalent (CVTDQ2PD) and hence can be subject to
  SSE2AVX translation and SSE checking,
- should not record MMX use in the respective ELF note.

gas/
2021-02-XX  Jan Beulich  <jbeulich@suse.com>

	* testsuite/gas/i386/sse-check.s,
	testsuite/gas/i386/sse2avx.s,
	testsuite/gas/i386/x86-64-sse2avx.s: Add CVTPI2PD cases.
	* testsuite/gas/i386/sse-check-error.l,
	testsuite/gas/i386/sse-check-warn.e,
	testsuite/gas/i386/sse-check.d,
	testsuite/gas/i386/sse2avx.d,
	testsuite/gas/i386/x86-64-sse-check-error.l,
	testsuite/gas/i386/x86-64-sse2avx.d: Adjust expecations.
	* testsuite/gas/i386/property-cvtpi2pd.s,
	testsuite/gas/i386/property-cvtpi2pd.d,
	testsuite/gas/i386/property-cvtpi2ps.s,
	testsuite/gas/i386/property-cvtpi2ps.d: New.
	* testsuite/gas/i386/i386.exp: Run new tests.

opcodes/
2021-02-XX  Jan Beulich  <jbeulich@suse.com>

	* i386-opc.tbl: Split CVTPI2PD template. Add SSE2AVX variant.
	* i386-tbl.h: Re-generate.

--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -725,6 +725,8 @@ if {[is_elf_format] || [istarget "*-*-vx
     run_dump_test "property-11"
     run_dump_test "property-12"
     run_dump_test "property-13"
+    run_dump_test "property-cvtpi2pd"
+    run_dump_test "property-cvtpi2ps"
     run_dump_test "property-ldmxcsr"
     run_dump_test "property-vldmxcsr"
     run_dump_test "property-vzeroall"
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2pd.d
@@ -0,0 +1,9 @@
+#name: i386 property cvtpi2pd
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA used: x86-64-baseline
+	x86 feature used: x86, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2pd.s
@@ -0,0 +1,2 @@
+	.text
+	cvtpi2pd (%eax), %xmm0
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2ps.d
@@ -0,0 +1,9 @@
+#name: i386 property cvtpi2ps
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+  GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA used: x86-64-baseline
+	x86 feature used: x86, MMX, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2ps.s
@@ -0,0 +1,2 @@
+	.text
+	cvtpi2ps (%eax), %xmm0
--- a/gas/testsuite/gas/i386/sse-check-error.l
+++ b/gas/testsuite/gas/i386/sse-check-error.l
@@ -1,14 +1,15 @@
 .*: Assembler messages:
 .*:7: Error: .*
 .*:10: Error: .*
-.*:13: Error: .*
-.*:16: Error: .*
-.*:19: Error: .*
+.*:14: Error: .*
+.*:17: Error: .*
 .*:20: Error: .*
-.*:26: Error: .*
-.*:29: Error: .*
-.*:32: Error: .*
-.*:35: Error: .*
+.*:23: Error: .*
+.*:24: Error: .*
+.*:30: Error: .*
+.*:33: Error: .*
+.*:36: Error: .*
+.*:39: Error: .*
 GAS LISTING .*
 
 
@@ -26,49 +27,55 @@ GAS LISTING .*
 [ 	]*10[ 	]+\?\?\?\? 660F58CA 		addpd %xmm2,%xmm1
 .*  Error: SSE instruction `addpd' is used
 [ 	]*11[ 	]+
-[ 	]*12[ 	]+\# SSE3 instruction
-[ 	]*13[ 	]+\?\?\?\? 660FD0CA 		addsubpd %xmm2,%xmm1
+[ 	]*[0-9]+[ 	]+# special case SSE2 instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F2ACA 		cvtpi2pd %mm2,%xmm1
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F2A0A 		cvtpi2pd \(%edx\),%xmm1
+.*  Error: SSE instruction `cvtpi2pd' is used
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSE3 instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660FD0CA 		addsubpd %xmm2,%xmm1
 .*  Error: SSE instruction `addsubpd' is used
-[ 	]*14[ 	]+
-[ 	]*15[ 	]+\# SSSE3 instruction
-[ 	]*16[ 	]+\?\?\?\? 660F3801 		phaddw %xmm2,%xmm1
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSSE3 instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3801 		phaddw %xmm2,%xmm1
 .*  Error: SSE instruction `phaddw' is used
-[ 	]*16[ 	]+CA
-[ 	]*17[ 	]+
-[ 	]*18[ 	]+\# SSE4 instructions
-[ 	]*19[ 	]+\?\?\?\? 660F3815 		blendvpd %xmm0,%xmm1,%xmm0
+[ 	]*[0-9]+[ 	]+CA
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSE4 instructions
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3815 		blendvpd %xmm0,%xmm1,%xmm0
 .*  Error: SSE instruction `blendvpd' is used
-[ 	]*19[ 	]+C1
-[ 	]*20[ 	]+\?\?\?\? 660F3837 		pcmpgtq %xmm1,%xmm0
+[ 	]*[0-9]+[ 	]+C1
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3837 		pcmpgtq %xmm1,%xmm0
 .*  Error: SSE instruction `pcmpgtq' is used
-[ 	]*20[ 	]+C1
-[ 	]*21[ 	]+
-[ 	]*22[ 	]+\# SSE4a instruction.*
-[ 	]*23[ 	]+\?\?\?\? 660F78C0 		extrq \$0, \$0, %xmm0
-[ 	]*23[ 	]+0000
-[ 	]*24[ 	]+
-[ 	]*25[ 	]+\# PCMUL instruction
-[ 	]*26[ 	]+\?\?\?\? 660F3A44 		pclmulqdq \$-1,%xmm1,%xmm2
+[ 	]*[0-9]+[ 	]+C1
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSE4a instruction.*
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F78C0 		extrq \$0, \$0, %xmm0
+[ 	]*[0-9]+[ 	]+0000
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# PCMUL instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3A44 		pclmulqdq \$-1,%xmm1,%xmm2
 .*  Error: SSE instruction `pclmulqdq' is used
-[ 	]*26[ 	]+D1FF
-[ 	]*27[ 	]+
-[ 	]*28[ 	]+\# AES instructions
-[ 	]*29[ 	]+\?\?\?\? 660F38DE 		aesdec %xmm1,%xmm2
+[ 	]*[0-9]+[ 	]+D1FF
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# AES instructions
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F38DE 		aesdec %xmm1,%xmm2
 .*  Error: SSE instruction `aesdec' is used
-[ 	]*29[ 	]+D1
-[ 	]*30[ 	]+
-[ 	]*31[ 	]+\# SHA instruction
-[ 	]*32[ 	]+\?\?\?\? 0F38C8C0 		sha1nexte %xmm0, %xmm0
+[ 	]*[0-9]+[ 	]+D1
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SHA instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 0F38C8C0 		sha1nexte %xmm0, %xmm0
 .*  Error: SSE instruction `sha1nexte' is used
-[ 	]*33[ 	]+
-[ 	]*34[ 	]+\# GFNI instructions
-[ 	]*35[ 	]+\?\?\?\? 660F38CF 		gf2p8mulb %xmm1,%xmm2
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# GFNI instructions
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F38CF 		gf2p8mulb %xmm1,%xmm2
 .*  Error: SSE instruction `gf2p8mulb' is used
-[ 	]*35[ 	]+D1
-[ 	]*36[ 	]+\?\?\?\? 62F27D09 		vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
-[ 	]*36[ 	]+CFC0
-[ 	]*37[ 	]+\?\?\?\? 62F27D48 		vgf2p8mulb %zmm0, %zmm0, %zmm0
-[ 	]*37[ 	]+CFC0
 \fGAS LISTING .*
 
 
+[ 	]*[0-9]+[ 	]+D1
+[ 	]*[0-9]+[ 	]+\?\?\?\? 62F27D09 		vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
+[ 	]*[0-9]+[ 	]+CFC0
+[ 	]*[0-9]+[ 	]+\?\?\?\? 62F27D48 		vgf2p8mulb %zmm0, %zmm0, %zmm0
+[ 	]*[0-9]+[ 	]+CFC0
+
--- a/gas/testsuite/gas/i386/sse-check-warn.e
+++ b/gas/testsuite/gas/i386/sse-check-warn.e
@@ -1,11 +1,12 @@
 .*: Assembler messages:
 .*:7: Warning: SSE instruction `addps' is used
 .*:10: Warning: SSE instruction `addpd' is used
-.*:13: Warning: SSE instruction `addsubpd' is used
-.*:16: Warning: SSE instruction `phaddw' is used
-.*:19: Warning: SSE instruction `blendvpd' is used
-.*:20: Warning: SSE instruction `pcmpgtq' is used
-.*:26: Warning: SSE instruction `pclmulqdq' is used
-.*:29: Warning: SSE instruction `aesdec' is used
-.*:32: Warning: SSE instruction `sha1nexte' is used
-.*:35: Warning: SSE instruction `gf2p8mulb' is used
+.*:14: Warning: SSE instruction `cvtpi2pd' is used
+.*:17: Warning: SSE instruction `addsubpd' is used
+.*:20: Warning: SSE instruction `phaddw' is used
+.*:23: Warning: SSE instruction `blendvpd' is used
+.*:24: Warning: SSE instruction `pcmpgtq' is used
+.*:30: Warning: SSE instruction `pclmulqdq' is used
+.*:33: Warning: SSE instruction `aesdec' is used
+.*:36: Warning: SSE instruction `sha1nexte' is used
+.*:39: Warning: SSE instruction `gf2p8mulb' is used
--- a/gas/testsuite/gas/i386/sse-check.d
+++ b/gas/testsuite/gas/i386/sse-check.d
@@ -9,6 +9,8 @@ Disassembly of section .text:
 0+ <_start>:
 [ 	]*[a-f0-9]+:	0f 58 ca             	addps  %xmm2,%xmm1
 [ 	]*[a-f0-9]+:	66 0f 58 ca          	addpd  %xmm2,%xmm1
+[ 	]*[a-f0-9]+:	66 0f 2a ca          	cvtpi2pd %mm2,%xmm1
+[ 	]*[a-f0-9]+:	(67 )?66 0f 2a 0a(   )?       	cvtpi2pd \(%edx\),%xmm1
 [ 	]*[a-f0-9]+:	66 0f d0 ca          	addsubpd %xmm2,%xmm1
 [ 	]*[a-f0-9]+:	66 0f 38 01 ca       	phaddw %xmm2,%xmm1
 [ 	]*[a-f0-9]+:	66 0f 38 15 c1       	blendvpd %xmm0,%xmm1,%xmm0
--- a/gas/testsuite/gas/i386/sse-check.s
+++ b/gas/testsuite/gas/i386/sse-check.s
@@ -9,6 +9,10 @@ _start:
 # SSE2 instruction
 	addpd %xmm2,%xmm1
 
+# special case SSE2 instruction
+	cvtpi2pd %mm2,%xmm1
+	cvtpi2pd (%edx),%xmm1
+
 # SSE3 instruction
 	addsubpd %xmm2,%xmm1
 
--- a/gas/testsuite/gas/i386/sse2avx.d
+++ b/gas/testsuite/gas/i386/sse2avx.d
@@ -408,6 +408,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	c5 f9 2f 21          	vcomisd \(%ecx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fa e6 f4          	vcvtdq2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%ecx\),%xmm4
+[ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%ecx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 f8 5a f4          	vcvtps2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 f8 5a 21          	vcvtps2pd \(%ecx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fb 12 f4          	vmovddup %xmm4,%xmm6
@@ -986,6 +987,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	c5 f9 2f 21          	vcomisd \(%ecx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fa e6 f4          	vcvtdq2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%ecx\),%xmm4
+[ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%ecx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 f8 5a f4          	vcvtps2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 f8 5a 21          	vcvtps2pd \(%ecx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fb 12 f4          	vmovddup %xmm4,%xmm6
--- a/gas/testsuite/gas/i386/sse2avx.s
+++ b/gas/testsuite/gas/i386/sse2avx.s
@@ -425,6 +425,7 @@ _start:
 	comisd (%ecx),%xmm4
 	cvtdq2pd %xmm4,%xmm6
 	cvtdq2pd (%ecx),%xmm4
+	cvtpi2pd (%ecx),%xmm4
 	cvtps2pd %xmm4,%xmm6
 	cvtps2pd (%ecx),%xmm4
 	movddup %xmm4,%xmm6
@@ -1086,6 +1087,7 @@ _start:
 	comisd xmm4,QWORD PTR [ecx]
 	cvtdq2pd xmm6,xmm4
 	cvtdq2pd xmm4,QWORD PTR [ecx]
+	cvtpi2pd xmm4,QWORD PTR [ecx]
 	cvtps2pd xmm6,xmm4
 	cvtps2pd xmm4,QWORD PTR [ecx]
 	movddup xmm6,xmm4
--- a/gas/testsuite/gas/i386/x86-64-sse-check-error.l
+++ b/gas/testsuite/gas/i386/x86-64-sse-check-error.l
@@ -1,14 +1,15 @@
 .*: Assembler messages:
 .*:7: Error: .*
 .*:10: Error: .*
-.*:13: Error: .*
-.*:16: Error: .*
-.*:19: Error: .*
+.*:14: Error: .*
+.*:17: Error: .*
 .*:20: Error: .*
-.*:26: Error: .*
-.*:29: Error: .*
-.*:32: Error: .*
-.*:35: Error: .*
+.*:23: Error: .*
+.*:24: Error: .*
+.*:30: Error: .*
+.*:33: Error: .*
+.*:36: Error: .*
+.*:39: Error: .*
 GAS LISTING .*
 
 
@@ -26,49 +27,56 @@ GAS LISTING .*
 [ 	]*10[ 	]+\?\?\?\? 660F58CA 		addpd %xmm2,%xmm1
 .*  Error: SSE instruction `addpd' is used
 [ 	]*11[ 	]+
-[ 	]*12[ 	]+\# SSE3 instruction
-[ 	]*13[ 	]+\?\?\?\? 660FD0CA 		addsubpd %xmm2,%xmm1
+[ 	]*[0-9]+[ 	]+# special case SSE2 instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F2ACA 		cvtpi2pd %mm2,%xmm1
+[ 	]*[0-9]+[ 	]+\?\?\?\? 67660F2A 		cvtpi2pd \(%edx\),%xmm1
+.*  Error: SSE instruction `cvtpi2pd' is used
+[ 	]*[0-9]+[ 	]+0A
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSE3 instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660FD0CA 		addsubpd %xmm2,%xmm1
 .*  Error: SSE instruction `addsubpd' is used
-[ 	]*14[ 	]+
-[ 	]*15[ 	]+\# SSSE3 instruction
-[ 	]*16[ 	]+\?\?\?\? 660F3801 		phaddw %xmm2,%xmm1
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSSE3 instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3801 		phaddw %xmm2,%xmm1
 .*  Error: SSE instruction `phaddw' is used
-[ 	]*16[ 	]+CA
-[ 	]*17[ 	]+
-[ 	]*18[ 	]+\# SSE4 instructions
-[ 	]*19[ 	]+\?\?\?\? 660F3815 		blendvpd %xmm0,%xmm1,%xmm0
+[ 	]*[0-9]+[ 	]+CA
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSE4 instructions
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3815 		blendvpd %xmm0,%xmm1,%xmm0
 .*  Error: SSE instruction `blendvpd' is used
-[ 	]*19[ 	]+C1
-[ 	]*20[ 	]+\?\?\?\? 660F3837 		pcmpgtq %xmm1,%xmm0
+[ 	]*[0-9]+[ 	]+C1
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3837 		pcmpgtq %xmm1,%xmm0
 .*  Error: SSE instruction `pcmpgtq' is used
-[ 	]*20[ 	]+C1
-[ 	]*21[ 	]+
-[ 	]*22[ 	]+\# SSE4a instruction.*
-[ 	]*23[ 	]+\?\?\?\? 660F78C0 		extrq \$0, \$0, %xmm0
-[ 	]*23[ 	]+0000
-[ 	]*24[ 	]+
-[ 	]*25[ 	]+\# PCMUL instruction
-[ 	]*26[ 	]+\?\?\?\? 660F3A44 		pclmulqdq \$-1,%xmm1,%xmm2
+[ 	]*[0-9]+[ 	]+C1
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SSE4a instruction.*
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F78C0 		extrq \$0, \$0, %xmm0
+[ 	]*[0-9]+[ 	]+0000
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# PCMUL instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F3A44 		pclmulqdq \$-1,%xmm1,%xmm2
 .*  Error: SSE instruction `pclmulqdq' is used
-[ 	]*26[ 	]+D1FF
-[ 	]*27[ 	]+
-[ 	]*28[ 	]+\# AES instructions
-[ 	]*29[ 	]+\?\?\?\? 660F38DE 		aesdec %xmm1,%xmm2
+[ 	]*[0-9]+[ 	]+D1FF
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# AES instructions
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F38DE 		aesdec %xmm1,%xmm2
 .*  Error: SSE instruction `aesdec' is used
-[ 	]*29[ 	]+D1
-[ 	]*30[ 	]+
-[ 	]*31[ 	]+\# SHA instruction
-[ 	]*32[ 	]+\?\?\?\? 0F38C8C0 		sha1nexte %xmm0, %xmm0
+[ 	]*[0-9]+[ 	]+D1
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# SHA instruction
+[ 	]*[0-9]+[ 	]+\?\?\?\? 0F38C8C0 		sha1nexte %xmm0, %xmm0
 .*  Error: SSE instruction `sha1nexte' is used
-[ 	]*33[ 	]+
-[ 	]*34[ 	]+\# GFNI instructions
-[ 	]*35[ 	]+\?\?\?\? 660F38CF 		gf2p8mulb %xmm1,%xmm2
-.*  Error: SSE instruction `gf2p8mulb' is used
-[ 	]*35[ 	]+D1
-[ 	]*36[ 	]+\?\?\?\? 62F27D09 		vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
-[ 	]*36[ 	]+CFC0
-[ 	]*37[ 	]+\?\?\?\? 62F27D48 		vgf2p8mulb %zmm0, %zmm0, %zmm0
-[ 	]*37[ 	]+CFC0
+[ 	]*[0-9]+[ 	]+
+[ 	]*[0-9]+[ 	]+\# GFNI instructions
+[ 	]*[0-9]+[ 	]+\?\?\?\? 660F38CF 		gf2p8mulb %xmm1,%xmm2
 \fGAS LISTING .*
 
 
+.*  Error: SSE instruction `gf2p8mulb' is used
+[ 	]*[0-9]+[ 	]+D1
+[ 	]*[0-9]+[ 	]+\?\?\?\? 62F27D09 		vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
+[ 	]*[0-9]+[ 	]+CFC0
+[ 	]*[0-9]+[ 	]+\?\?\?\? 62F27D48 		vgf2p8mulb %zmm0, %zmm0, %zmm0
+[ 	]*[0-9]+[ 	]+CFC0
+
--- a/gas/testsuite/gas/i386/x86-64-sse2avx.d
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx.d
@@ -474,6 +474,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	c5 f9 2f 21          	vcomisd \(%rcx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fa e6 f4          	vcvtdq2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%rcx\),%xmm4
+[ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%rcx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 f8 5a f4          	vcvtps2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 f8 5a 21          	vcvtps2pd \(%rcx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fb 12 f4          	vmovddup %xmm4,%xmm6
@@ -1137,6 +1138,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	c5 f9 2f 21          	vcomisd \(%rcx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fa e6 f4          	vcvtdq2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%rcx\),%xmm4
+[ 	]*[a-f0-9]+:	c5 fa e6 21          	vcvtdq2pd \(%rcx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 f8 5a f4          	vcvtps2pd %xmm4,%xmm6
 [ 	]*[a-f0-9]+:	c5 f8 5a 21          	vcvtps2pd \(%rcx\),%xmm4
 [ 	]*[a-f0-9]+:	c5 fb 12 f4          	vmovddup %xmm4,%xmm6
--- a/gas/testsuite/gas/i386/x86-64-sse2avx.s
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx.s
@@ -489,6 +489,7 @@ _start:
 	comisd (%rcx),%xmm4
 	cvtdq2pd %xmm4,%xmm6
 	cvtdq2pd (%rcx),%xmm4
+	cvtpi2pd (%rcx),%xmm4
 	cvtps2pd %xmm4,%xmm6
 	cvtps2pd (%rcx),%xmm4
 	movddup %xmm4,%xmm6
@@ -1260,6 +1261,7 @@ _start:
 	comisd xmm4,QWORD PTR [rcx]
 	cvtdq2pd xmm6,xmm4
 	cvtdq2pd xmm4,QWORD PTR [rcx]
+	cvtpi2pd xmm4,QWORD PTR [rcx]
 	cvtps2pd xmm6,xmm4
 	cvtps2pd xmm4,QWORD PTR [rcx]
 	movddup xmm6,xmm4
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -1310,7 +1310,9 @@ cmpsd, 3, 0xf2c2, None, 1, CpuAVX, Modrm
 cmpsd, 3, 0x0fc2, None, 2, CpuSSE2, Prefix_0XF2|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
 comisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|OpcodePrefix=0|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
 comisd, 2, 0x0f2f, None, 2, CpuSSE2, Prefix_0X66|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
-cvtpi2pd, 2, 0x0f2a, None, 2, CpuSSE2, Prefix_0X66|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegXMM }
+cvtpi2pd, 2, 0x0f2a, None, 2, CpuSSE2, Prefix_0X66|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|NoAVX, { RegMMX, RegXMM }
+cvtpi2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex|OpcodePrefix=0|VexW0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
+cvtpi2pd, 2, 0x0f2a, None, 2, CpuSSE2, Prefix_0X66|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex, RegXMM }
 cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|OpcodePrefix=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
 cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|OpcodePrefix=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX|ATTSyntax, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
 cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|OpcodePrefix=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX|IntelSyntax, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes
  2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
                   ` (3 preceding siblings ...)
  2021-02-15 13:38 ` [PATCH 4/4] x86: CVTPI2PD has special behavior Jan Beulich
@ 2021-02-15 14:52 ` H.J. Lu
  4 siblings, 0 replies; 6+ messages in thread
From: H.J. Lu @ 2021-02-15 14:52 UTC (permalink / raw)
  To: Jan Beulich; +Cc: Binutils

On Mon, Feb 15, 2021 at 5:35 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> There are more quirks afaict, but I wanted to start somewhere.
>
> 1: make common property tests common
> 2: record register use for SIMD insns without respective explicit operands
> 3: honor template rather than actual operands when updating i.xstate
> 4: CVTPI2PD has special behavior
>
> Jan

OK to all.

Thanks.

-- 
H.J.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-02-15 14:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
2021-02-15 13:37 ` [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands Jan Beulich
2021-02-15 13:38 ` [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate Jan Beulich
2021-02-15 13:38 ` [PATCH 4/4] x86: CVTPI2PD has special behavior Jan Beulich
2021-02-15 14:52 ` [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).