summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-08-04 23:37:00 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-08-04 23:37:00 +0000
commit0ec4b37dc723e9bc757b45ec5e7802eee34d54f3 (patch)
treebfdd2b6c29f1c29b751dec9101525d577ee095f5 /gcc/testsuite
parentb074b7f8b3a86cd45d95d9be7b2f80a7fecaac15 (diff)
downloadgcc-0ec4b37dc723e9bc757b45ec5e7802eee34d54f3.tar.gz
PR 21291
* tree-outof-ssa.c (coalesce_asm_operands): New. (coalesce_ssa_name): Use it. Split out ... (coalesce_phi_operands, coalesce_result_decls): ... these. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102751 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/gcc.target/i386/pr21291.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr21291.c b/gcc/testsuite/gcc.target/i386/pr21291.c
new file mode 100644
index 00000000000..acfc43df67f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr21291.c
@@ -0,0 +1,31 @@
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+typedef unsigned long bngdigit;
+typedef bngdigit *bng;
+typedef unsigned int bngcarry;
+typedef unsigned long bngsize;
+
+bngdigit
+bng_ia32_mult_sub_digit (bng a, bngsize alen, bng b, bngsize blen, bngdigit d)
+{
+ bngdigit out, tmp;
+ bngcarry carry;
+ bngdigit a11;
+
+ alen -= blen;
+ out = 0;
+ asm (""
+ : "+r" (a), "+r" (b), "+mr" (blen), "+mr" (out), "=&r" (tmp)
+ : "mr" (d)
+ : "eax", "edx");
+ if (alen == 0)
+ {
+ a11 = out;
+ goto t;
+ }
+
+ a11 = 1;
+ t:
+ return a11;
+}