diff --git a/gcc/testsuite/g++.dg/ext/asm2.C b/gcc/testsuite/g++.dg/ext/asm2.C
new file mode 100644
index 0000000000000000000000000000000000000000..6cec382c8ba7a76df77ebcef7772562c0f08ae3e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/asm2.C
@@ -0,0 +1,12 @@
+// Bug: in a template, we forgot that this was a simple asm, and decided
+// that %edi was a malformed operand specifier.
+
+template <class T> class  I {
+public:
+ void f() { asm ("# mov %edi, %esi" ); }
+};
+
+int main () {
+  I<int> x;
+  x.f();
+}