x86: Add a testcase for PR target/96861
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 19 Sep 2020 16:57:16 +0000 (09:57 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 19 Sep 2020 17:03:10 +0000 (10:03 -0700)
Add a testcase to verify that -march=skylake-avx512 -mtune=skylake-avx512
generates desired code sequence.

PR target/96861
* gcc.target/i386/pr96861.c: New test.

gcc/testsuite/gcc.target/i386/pr96861.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.target/i386/pr96861.c b/gcc/testsuite/gcc.target/i386/pr96861.c
new file mode 100644 (file)
index 0000000..7b7aecc
--- /dev/null
@@ -0,0 +1,38 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mstv -march=skylake-avx512 -mtune=skylake-avx512" } */
+
+#define max(a,b) (((a) > (b))? (a) : (b))
+#define min(a,b) (((a) < (b))? (a) : (b))
+
+int smax1(int x)
+{
+  return max(x,1);
+}
+
+int smin1(int x)
+{
+  return min(x,1);
+}
+
+int smaxm1(int x)
+{
+  return max(x,-1);
+}
+
+int sminm1(int x)
+{
+  return min(x,-1);
+}
+
+unsigned int umax1(unsigned int x)
+{
+  return max(x,1);
+}
+
+unsigned int umin1(unsigned int x)
+{
+  return min(x,1);
+}
+
+/* { dg-final { scan-assembler-times "test" 6 } } */
+/* { dg-final { scan-assembler-not "cmp" } } */