From: Andi Kleen <[email protected]>
The earlier 64bit ptwrite as 32bit fix broke Intel syntax output. Handle
that too by using an alternative. In Intel syntax the instruction
data type is defined by the operands.
I'll commit it as obvious in a day or so for 15/16/trunk, unless there
are objections.
PR target/125351
gcc/ChangeLog:
* config/i386/i386.md: Use alternative to handle masm ptwrite
syntax.
gcc/testsuite/ChangeLog:
* gcc.target/i386/pr125351.c: New test.
---
gcc/config/i386/i386.md | 2 +-
gcc/testsuite/gcc.target/i386/pr125351.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/gcc.target/i386/pr125351.c
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index fa84da26aa8..ad0b7068961 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -30303,7 +30303,7 @@ (define_insn "ptwrite<mode>"
[(unspec_volatile [(match_operand:SWI48 0 "nonimmediate_operand" "rm")]
UNSPECV_PTWRITE)]
"TARGET_PTWRITE"
- "ptwrite<imodesuffix>\t%0"
+ "{ptwrite<imodesuffix>|ptwrite}\t%0"
[(set_attr "type" "other")
(set_attr "prefix_0f" "1")
(set_attr "prefix_rep" "1")])
diff --git a/gcc/testsuite/gcc.target/i386/pr125351.c
b/gcc/testsuite/gcc.target/i386/pr125351.c
new file mode 100644
index 00000000000..f21adcae44a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr125351.c
@@ -0,0 +1,3 @@
+/* { dg-do compile } */
+/* { dg-options "-mptwrite -masm=intel" } */
+void foo() { __builtin_ia32_ptwrite32(0); }
--
2.54.0