diff --git a/gcc/testsuite/gcc.target/sh/fpchg.c b/gcc/testsuite/gcc.target/sh/fpchg.c
new file mode 100644
index 0000000000000000000000000000000000000000..ad18c898738541e00e6153f3f9d5aabe8f6c0331
--- /dev/null
+++ b/gcc/testsuite/gcc.target/sh/fpchg.c
@@ -0,0 +1,17 @@
+/* Check that fpchg is used to switch precision.  */
+
+/* { dg-do compile } */
+/* { dg-final { scan-assembler "fpchg" } } */
+/* { dg-final { scan-assembler-not "fpscr" } } */
+/* { dg-skip-if "" { "sh*-*-*" } { "*" } { "-m4a" } } */
+
+extern float c;
+
+void
+foo(int j)
+{
+  while (j--)
+    c++;
+
+}
+