summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-22 00:35:48 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-22 00:35:48 +0000
commit624e1eec9297f70ad0a205f71092eaa6863dc87b (patch)
tree7ab67e5bc186d42f2dd5968d92d477a5936aeb7f /gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c
parentd5b896a6b4f4120afe67e37afc1a7110b02426a4 (diff)
downloadgcc-624e1eec9297f70ad0a205f71092eaa6863dc87b.tar.gz
* config/rs6000/rs6000.opt (mmulhw): New option.
* doc/invoke.texi (-mmulhw): Document. * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw for 405 and 440. * config/rs6000/rs6000.md: Add half-word multiply and multiply-accumulate instructions for 405 and 440. testsuite: * gcc.target/powerpc/405-macchw-1.c, gcc.target/powerpc/405-macchw-2.c, gcc.target/powerpc/405-macchwu-1.c, gcc.target/powerpc/405-macchwu-2.c, gcc.target/powerpc/405-machhw-1.c, gcc.target/powerpc/405-machhw-2.c, gcc.target/powerpc/405-machhwu-1.c, gcc.target/powerpc/405-machhwu-2.c, gcc.target/powerpc/405-maclhw-1.c, gcc.target/powerpc/405-maclhw-2.c, gcc.target/powerpc/405-maclhwu-1.c, gcc.target/powerpc/405-maclhwu-2.c, gcc.target/powerpc/405-mulchw-1.c, gcc.target/powerpc/405-mulchw-2.c, gcc.target/powerpc/405-mulchwu-1.c, gcc.target/powerpc/405-mulchwu-2.c, gcc.target/powerpc/405-mulhhw-1.c, gcc.target/powerpc/405-mulhhw-2.c, gcc.target/powerpc/405-mulhhwu-1.c, gcc.target/powerpc/405-mulhhwu-2.c, gcc.target/powerpc/405-mullhw-1.c, gcc.target/powerpc/405-mullhw-2.c, gcc.target/powerpc/405-mullhwu-1.c, gcc.target/powerpc/405-mullhwu-2.c, gcc.target/powerpc/405-nmacchw-1.c, gcc.target/powerpc/405-nmacchw-2.c, gcc.target/powerpc/405-nmachhw-1.c, gcc.target/powerpc/405-nmachhw-2.c, gcc.target/powerpc/405-nmaclhw-1.c, gcc.target/powerpc/405-nmaclhw-2.c, gcc.target/powerpc/440-macchw-1.c, gcc.target/powerpc/440-macchw-2.c, gcc.target/powerpc/440-macchwu-1.c, gcc.target/powerpc/440-macchwu-2.c, gcc.target/powerpc/440-machhw-1.c, gcc.target/powerpc/440-machhw-2.c, gcc.target/powerpc/440-machhwu-1.c, gcc.target/powerpc/440-machhwu-2.c, gcc.target/powerpc/440-maclhw-1.c, gcc.target/powerpc/440-maclhw-2.c, gcc.target/powerpc/440-maclhwu-1.c, gcc.target/powerpc/440-maclhwu-2.c, gcc.target/powerpc/440-mulchw-1.c, gcc.target/powerpc/440-mulchw-2.c, gcc.target/powerpc/440-mulchwu-1.c, gcc.target/powerpc/440-mulchwu-2.c, gcc.target/powerpc/440-mulhhw-1.c, gcc.target/powerpc/440-mulhhw-2.c, gcc.target/powerpc/440-mulhhwu-1.c, gcc.target/powerpc/440-mulhhwu-2.c, gcc.target/powerpc/440-mullhw-1.c, gcc.target/powerpc/440-mullhw-2.c, gcc.target/powerpc/440-mullhwu-1.c, gcc.target/powerpc/440-mullhwu-2.c, gcc.target/powerpc/440-nmacchw-1.c, gcc.target/powerpc/440-nmacchw-2.c, gcc.target/powerpc/440-nmachhw-1.c, gcc.target/powerpc/440-nmachhw-2.c, gcc.target/powerpc/440-nmaclhw-1.c, gcc.target/powerpc/440-nmaclhw-2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107344 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c')
-rw-r--r--gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c b/gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c
new file mode 100644
index 00000000000..d09561cb155
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/440-mulchw-2.c
@@ -0,0 +1,16 @@
+/* Test generation of mulchw. on 440. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O2 -mcpu=440" } */
+
+/* { dg-final { scan-assembler "mulchw\\. " } } */
+
+int
+f(int b, int c)
+{
+ int a = (short)b * (c >> 16);
+ if (!a)
+ return 10;
+ return a;
+}