aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/sparc/vis3move-3.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/sparc/vis3move-3.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/sparc/vis3move-3.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/sparc/vis3move-3.c b/gcc-4.9/gcc/testsuite/gcc.target/sparc/vis3move-3.c
new file mode 100644
index 000000000..3b2116eec
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/sparc/vis3move-3.c
@@ -0,0 +1,41 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O1 -mvis3" } */
+
+float fnegs (float a)
+{
+ return -a;
+}
+
+double fnegd (double a)
+{
+ return -a;
+}
+
+float fmuls (float a, float b)
+{
+ return a * b;
+}
+
+double fmuld (double a, double b)
+{
+ return a * b;
+}
+
+double fsmuld (float a, float b)
+{
+ return (double)a * (double)b;
+}
+
+double fnsmuld (float a, float b)
+{
+ return -((double)a * (double)b);
+}
+
+/* { dg-final { scan-assembler-times "movwtos\t%" 13 } } */
+/* { dg-final { scan-assembler "fnegs\t%" } } */
+/* { dg-final { scan-assembler "fnegd\t%" } } */
+/* { dg-final { scan-assembler "fmuls\t%" } } */
+/* { dg-final { scan-assembler "fmuld\t%" } } */
+/* { dg-final { scan-assembler "fsmuld\t%" } } */
+/* { dg-final { scan-assembler "fnsmuld\t%" } } */