aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2010-04-22 11:25:44 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2010-04-22 11:25:44 +0000
commit9193b1b4cccecf44662f648e0b51fb00975c124f (patch)
treec75dd7ce28eb10462c121b73dfa77a73d2f45b0f /gcc
parentb3be269469128e277aabfe9972e48176eb627f57 (diff)
downloadgcc-9193b1b4cccecf44662f648e0b51fb00975c124f.zip
gcc-9193b1b4cccecf44662f648e0b51fb00975c124f.tar.gz
gcc-9193b1b4cccecf44662f648e0b51fb00975c124f.tar.bz2
re PR middle-end/29274 (not using mulsidi3)
PR middle-end/29274 * gcc.target/arm/wmul-1.c: New test. * gcc.target/arm/wmul-2.c: New test. From-SVN: r158642
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/arm/wmul-1.c18
-rw-r--r--gcc/testsuite/gcc.target/arm/wmul-2.c12
3 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 026b4ba..4edbd72 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR middle-end/29274
+ * gcc.target/arm/wmul-1.c: New test.
+ * gcc.target/arm/wmul-2.c: New test.
+
2010-04-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43845
diff --git a/gcc/testsuite/gcc.target/arm/wmul-1.c b/gcc/testsuite/gcc.target/arm/wmul-1.c
new file mode 100644
index 0000000..df85e7c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/wmul-1.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=armv6t2" } */
+
+int mac(const short *a, const short *b, int sqr, int *sum)
+{
+ int i;
+ int dotp = *sum;
+
+ for (i = 0; i < 150; i++) {
+ dotp += b[i] * a[i];
+ sqr += b[i] * b[i];
+ }
+
+ *sum = dotp;
+ return sqr;
+}
+
+/* { dg-final { scan-assembler-times "smulbb" 2 } } */
diff --git a/gcc/testsuite/gcc.target/arm/wmul-2.c b/gcc/testsuite/gcc.target/arm/wmul-2.c
new file mode 100644
index 0000000..0c092f1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/wmul-2.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=armv6t2" } */
+
+void vec_mpy(int y[], const short x[], short scaler)
+{
+ int i;
+
+ for (i = 0; i < 150; i++)
+ y[i] += ((scaler * x[i]) >> 31);
+}
+
+/* { dg-final { scan-assembler-times "smulbb" 1 } } */