/*
** Automatically generated from `poly.m' by the
** Mercury compiler, version 0.5-beta.  Do not edit.
*/
/*
INIT mercury__poly__init
ENDINIT
*/

#include "imp.h"

Define_extern_entry(mercury__main_2_0);
Declare_label(mercury__main_2_0_i3);
Declare_label(mercury__main_2_0_i4);
Declare_label(mercury__main_2_0_i5);
Define_extern_entry(mercury__benchmark_1_0);
Declare_label(mercury__benchmark_1_0_i3);
Declare_label(mercury__benchmark_1_0_i4);
Declare_local(mercury__test_poly1_1_0_l);
Declare_local(mercury__test_poly2_1_0_l);
Declare_local(mercury__test_poly3_1_0_l);
Declare_local(mercury__test_poly_1_0_l);
Declare_label(mercury__test_poly_1_0_i14);
Declare_label(mercury__test_poly_1_0_i19);
Declare_local(mercury__poly_add_3_0_l);
Declare_label(mercury__poly_add_3_0_i1001);
Declare_label(mercury__poly_add_3_0_i25);
Declare_label(mercury__poly_add_3_0_i1000);
Declare_label(mercury__poly_add_3_0_i21);
Declare_label(mercury__poly_add_3_0_i6);
Declare_label(mercury__poly_add_3_0_i9);
Declare_label(mercury__poly_add_3_0_i7);
Declare_label(mercury__poly_add_3_0_i13);
Declare_label(mercury__poly_add_3_0_i15);
Declare_label(mercury__poly_add_3_0_i12);
Declare_label(mercury__poly_add_3_0_i17);
Declare_local(mercury__term_add_3_0_l);
Declare_label(mercury__term_add_3_0_i9);
Declare_label(mercury__term_add_3_0_i10);
Declare_label(mercury__term_add_3_0_i7);
Declare_label(mercury__term_add_3_0_i15);
Declare_label(mercury__term_add_3_0_i13);
Declare_label(mercury__term_add_3_0_i17);
Declare_label(mercury__term_add_3_0_i1000);
Declare_label(mercury__term_add_3_0_i1001);
Declare_local(mercury__add_to_order_zero_term_3_0_l);
Declare_label(mercury__add_to_order_zero_term_3_0_i1000);
Declare_label(mercury__add_to_order_zero_term_3_0_i8);
Declare_label(mercury__add_to_order_zero_term_3_0_i9);
Declare_local(mercury__poly_exp_3_0_l);
Declare_label(mercury__poly_exp_3_0_i10);
Declare_label(mercury__poly_exp_3_0_i1002);
Declare_label(mercury__poly_exp_3_0_i12);
Declare_label(mercury__poly_exp_3_0_i1000);
Declare_local(mercury__poly_mul_3_0_l);
Declare_label(mercury__poly_mul_3_0_i1001);
Declare_label(mercury__poly_mul_3_0_i25);
Declare_label(mercury__poly_mul_3_0_i1000);
Declare_label(mercury__poly_mul_3_0_i21);
Declare_label(mercury__poly_mul_3_0_i6);
Declare_label(mercury__poly_mul_3_0_i9);
Declare_label(mercury__poly_mul_3_0_i7);
Declare_label(mercury__poly_mul_3_0_i13);
Declare_label(mercury__poly_mul_3_0_i15);
Declare_label(mercury__poly_mul_3_0_i12);
Declare_label(mercury__poly_mul_3_0_i17);
Declare_local(mercury__term_mul_3_0_l);
Declare_label(mercury__term_mul_3_0_i7);
Declare_label(mercury__term_mul_3_0_i8);
Declare_label(mercury__term_mul_3_0_i1000);
Declare_label(mercury__term_mul_3_0_i1001);
Declare_local(mercury__single_term_mul_3_0_l);
Declare_label(mercury__single_term_mul_3_0_i5);
Declare_label(mercury__single_term_mul_3_0_i7);
Declare_label(mercury__single_term_mul_3_0_i1000);
Declare_local(mercury__mul_through_3_0_l);
Declare_label(mercury__mul_through_3_0_i5);
Declare_label(mercury__mul_through_3_0_i7);
Declare_label(mercury__mul_through_3_0_i1000);
Declare_local(mercury__lt_2_0_l);
Declare_label(mercury__lt_2_0_i6);
Declare_label(mercury__lt_2_0_i4);
Declare_label(mercury__lt_2_0_i8);
Declare_label(mercury__lt_2_0_i7);
Declare_local(mercury__even_1_0_l);
Declare_label(mercury__even_1_0_i1);
Declare_local(mercury__print_poly_3_0_l);
Declare_label(mercury__print_poly_3_0_i10);
Declare_label(mercury__print_poly_3_0_i11);
Declare_label(mercury__print_poly_3_0_i4);
Declare_label(mercury__print_poly_3_0_i5);
Declare_label(mercury__print_poly_3_0_i6);
Declare_label(mercury__print_poly_3_0_i7);
Declare_label(mercury__print_poly_3_0_i8);
Declare_local(mercury__print_var_3_0_l);
Declare_label(mercury__print_var_3_0_i1001);
Declare_label(mercury__print_var_3_0_i1000);
Declare_local(mercury__print_terms_3_0_l);
Declare_label(mercury__print_terms_3_0_i8);
Declare_label(mercury__print_terms_3_0_i9);
Declare_label(mercury__print_terms_3_0_i1000);
Declare_local(mercury__print_terms_2_3_0_l);
Declare_label(mercury__print_terms_2_3_0_i5);
Declare_label(mercury__print_terms_2_3_0_i9);
Declare_label(mercury__print_terms_2_3_0_i10);
Declare_label(mercury__print_terms_2_3_0_i4);
Declare_label(mercury__print_terms_2_3_0_i1001);
Declare_local(mercury__print_term_3_0_l);
Declare_label(mercury__print_term_3_0_i3);
Declare_label(mercury__print_term_3_0_i4);
Declare_label(mercury__print_term_3_0_i5);
Declare_label(mercury__print_term_3_0_i6);
Define_extern_entry(mercury____Unify___var_0_0);
Declare_label(mercury____Unify___var_0_0_i1);
Define_extern_entry(mercury____Index___var_0_0);
Define_extern_entry(mercury____Compare___var_0_0);
Define_extern_entry(mercury____Unify___pterm_0_0);
Declare_label(mercury____Unify___pterm_0_0_i1000);
Define_extern_entry(mercury____Index___pterm_0_0);
Define_extern_entry(mercury____Compare___pterm_0_0);
Declare_label(mercury____Compare___pterm_0_0_i5);
Declare_label(mercury____Compare___pterm_0_0_i9);
Define_extern_entry(mercury____Unify___poly_0_0);
Declare_label(mercury____Unify___poly_0_0_i1002);
Declare_label(mercury____Unify___poly_0_0_i1001);
Declare_label(mercury____Unify___poly_0_0_i11);
Declare_label(mercury____Unify___poly_0_0_i1000);
Define_extern_entry(mercury____Index___poly_0_0);
Declare_label(mercury____Index___poly_0_0_i4);
Define_extern_entry(mercury____Compare___poly_0_0);
Declare_label(mercury____Compare___poly_0_0_i3);
Declare_label(mercury____Compare___poly_0_0_i4);
Declare_label(mercury____Compare___poly_0_0_i5);
Declare_label(mercury____Compare___poly_0_0_i7);
Declare_label(mercury____Compare___poly_0_0_i14);
Declare_label(mercury____Compare___poly_0_0_i17);
Declare_label(mercury____Compare___poly_0_0_i24);
Declare_label(mercury____Compare___poly_0_0_i12);
Declare_label(mercury____Compare___poly_0_0_i26);
Declare_label(mercury____Compare___poly_0_0_i29);

BEGIN_MODULE(mercury__poly_module)
	init_entry(mercury__main_2_0);
	init_label(mercury__main_2_0_i3);
	init_label(mercury__main_2_0_i4);
	init_label(mercury__main_2_0_i5);
	init_entry(mercury__benchmark_1_0);
	init_label(mercury__benchmark_1_0_i3);
	init_label(mercury__benchmark_1_0_i4);
	init_local(mercury__test_poly1_1_0_l);
	init_local(mercury__test_poly2_1_0_l);
	init_local(mercury__test_poly3_1_0_l);
	init_local(mercury__test_poly_1_0_l);
	init_label(mercury__test_poly_1_0_i14);
	init_label(mercury__test_poly_1_0_i19);
	init_local(mercury__poly_add_3_0_l);
	init_label(mercury__poly_add_3_0_i1001);
	init_label(mercury__poly_add_3_0_i25);
	init_label(mercury__poly_add_3_0_i1000);
	init_label(mercury__poly_add_3_0_i21);
	init_label(mercury__poly_add_3_0_i6);
	init_label(mercury__poly_add_3_0_i9);
	init_label(mercury__poly_add_3_0_i7);
	init_label(mercury__poly_add_3_0_i13);
	init_label(mercury__poly_add_3_0_i15);
	init_label(mercury__poly_add_3_0_i12);
	init_label(mercury__poly_add_3_0_i17);
	init_local(mercury__term_add_3_0_l);
	init_label(mercury__term_add_3_0_i9);
	init_label(mercury__term_add_3_0_i10);
	init_label(mercury__term_add_3_0_i7);
	init_label(mercury__term_add_3_0_i15);
	init_label(mercury__term_add_3_0_i13);
	init_label(mercury__term_add_3_0_i17);
	init_label(mercury__term_add_3_0_i1000);
	init_label(mercury__term_add_3_0_i1001);
	init_local(mercury__add_to_order_zero_term_3_0_l);
	init_label(mercury__add_to_order_zero_term_3_0_i1000);
	init_label(mercury__add_to_order_zero_term_3_0_i8);
	init_label(mercury__add_to_order_zero_term_3_0_i9);
	init_local(mercury__poly_exp_3_0_l);
	init_label(mercury__poly_exp_3_0_i10);
	init_label(mercury__poly_exp_3_0_i1002);
	init_label(mercury__poly_exp_3_0_i12);
	init_label(mercury__poly_exp_3_0_i1000);
	init_local(mercury__poly_mul_3_0_l);
	init_label(mercury__poly_mul_3_0_i1001);
	init_label(mercury__poly_mul_3_0_i25);
	init_label(mercury__poly_mul_3_0_i1000);
	init_label(mercury__poly_mul_3_0_i21);
	init_label(mercury__poly_mul_3_0_i6);
	init_label(mercury__poly_mul_3_0_i9);
	init_label(mercury__poly_mul_3_0_i7);
	init_label(mercury__poly_mul_3_0_i13);
	init_label(mercury__poly_mul_3_0_i15);
	init_label(mercury__poly_mul_3_0_i12);
	init_label(mercury__poly_mul_3_0_i17);
	init_local(mercury__term_mul_3_0_l);
	init_label(mercury__term_mul_3_0_i7);
	init_label(mercury__term_mul_3_0_i8);
	init_label(mercury__term_mul_3_0_i1000);
	init_label(mercury__term_mul_3_0_i1001);
	init_local(mercury__single_term_mul_3_0_l);
	init_label(mercury__single_term_mul_3_0_i5);
	init_label(mercury__single_term_mul_3_0_i7);
	init_label(mercury__single_term_mul_3_0_i1000);
	init_local(mercury__mul_through_3_0_l);
	init_label(mercury__mul_through_3_0_i5);
	init_label(mercury__mul_through_3_0_i7);
	init_label(mercury__mul_through_3_0_i1000);
	init_local(mercury__lt_2_0_l);
	init_label(mercury__lt_2_0_i6);
	init_label(mercury__lt_2_0_i4);
	init_label(mercury__lt_2_0_i8);
	init_label(mercury__lt_2_0_i7);
	init_local(mercury__even_1_0_l);
	init_label(mercury__even_1_0_i1);
	init_local(mercury__print_poly_3_0_l);
	init_label(mercury__print_poly_3_0_i10);
	init_label(mercury__print_poly_3_0_i11);
	init_label(mercury__print_poly_3_0_i4);
	init_label(mercury__print_poly_3_0_i5);
	init_label(mercury__print_poly_3_0_i6);
	init_label(mercury__print_poly_3_0_i7);
	init_label(mercury__print_poly_3_0_i8);
	init_local(mercury__print_var_3_0_l);
	init_label(mercury__print_var_3_0_i1001);
	init_label(mercury__print_var_3_0_i1000);
	init_local(mercury__print_terms_3_0_l);
	init_label(mercury__print_terms_3_0_i8);
	init_label(mercury__print_terms_3_0_i9);
	init_label(mercury__print_terms_3_0_i1000);
	init_local(mercury__print_terms_2_3_0_l);
	init_label(mercury__print_terms_2_3_0_i5);
	init_label(mercury__print_terms_2_3_0_i9);
	init_label(mercury__print_terms_2_3_0_i10);
	init_label(mercury__print_terms_2_3_0_i4);
	init_label(mercury__print_terms_2_3_0_i1001);
	init_local(mercury__print_term_3_0_l);
	init_label(mercury__print_term_3_0_i3);
	init_label(mercury__print_term_3_0_i4);
	init_label(mercury__print_term_3_0_i5);
	init_label(mercury__print_term_3_0_i6);
	init_entry(mercury____Unify___var_0_0);
	init_label(mercury____Unify___var_0_0_i1);
	init_entry(mercury____Index___var_0_0);
	init_entry(mercury____Compare___var_0_0);
	init_entry(mercury____Unify___pterm_0_0);
	init_label(mercury____Unify___pterm_0_0_i1000);
	init_entry(mercury____Index___pterm_0_0);
	init_entry(mercury____Compare___pterm_0_0);
	init_label(mercury____Compare___pterm_0_0_i5);
	init_label(mercury____Compare___pterm_0_0_i9);
	init_entry(mercury____Unify___poly_0_0);
	init_label(mercury____Unify___poly_0_0_i1002);
	init_label(mercury____Unify___poly_0_0_i1001);
	init_label(mercury____Unify___poly_0_0_i11);
	init_label(mercury____Unify___poly_0_0_i1000);
	init_entry(mercury____Index___poly_0_0);
	init_label(mercury____Index___poly_0_0_i4);
	init_entry(mercury____Compare___poly_0_0);
	init_label(mercury____Compare___poly_0_0_i3);
	init_label(mercury____Compare___poly_0_0_i4);
	init_label(mercury____Compare___poly_0_0_i5);
	init_label(mercury____Compare___poly_0_0_i7);
	init_label(mercury____Compare___poly_0_0_i14);
	init_label(mercury____Compare___poly_0_0_i17);
	init_label(mercury____Compare___poly_0_0_i24);
	init_label(mercury____Compare___poly_0_0_i12);
	init_label(mercury____Compare___poly_0_0_i26);
	init_label(mercury____Compare___poly_0_0_i29);
BEGIN_CODE


/*-------------------------------------------------------------------------*/
/* code for predicate main/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
DCG_0	 ->	stackvar(1)
 */
Define_entry(mercury__main_2_0);
		/* Procedure entry point */
/* End of procedure prologue */
	incr_sp(2);
		/* late setup */
	{ detstackvar(2) = (Integer) succip; }
		/* late save */
	{ detstackvar(1) = (Integer) r1; }
		/* Assigning from DCG_0 */
/*
 * Live lvalues:
 *	detstackvar(1)
 *	detstackvar(2)
 */
	{ localcall(mercury__benchmark_1_0,
		LABEL(mercury__main_2_0_i3),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(2)	succip
 *	r1	num(8)
 *	detstackvar(1)	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i3);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r2 = (Integer) detstackvar(1); }
		/* Assigning from DCG_0 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 */
	{ localcall(mercury__print_poly_3_0_l,
		LABEL(mercury__main_2_0_i4),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(2)	succip
 *	r3	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i4);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = string_const("\n", 1); }
		/* Assigning from variable number 7 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i5),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(2)	succip
 *	r3	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i5);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r2 = (Integer) r3; }
		/* Assigning from HeadVar__2 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(2); }
		/* restore the success ip */
	decr_sp(2);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r2
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate benchmark/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury__benchmark_1_0);
		/* Procedure entry point */
/* End of procedure prologue */
	incr_sp(1);
		/* late setup */
	{ detstackvar(1) = (Integer) succip; }
		/* late save */
	{ localcall(mercury__test_poly_1_0_l,
		LABEL(mercury__benchmark_1_0_i3),
		LABEL(mercury__benchmark_1_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(1)	succip
 *	r1	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__benchmark_1_0_i3);
	update_prof_current_proc(LABEL(mercury__benchmark_1_0));
		/* Continuation label */
	{ r2 = (Integer) r1; }
		/* shuffle lval */
	{ r1 = 10; }
		/* Assigning from variable number 4 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 */
	{ localcall(mercury__poly_exp_3_0_l,
		LABEL(mercury__benchmark_1_0_i4),
		LABEL(mercury__benchmark_1_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(1)	succip
 *	r3	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__benchmark_1_0_i4);
	update_prof_current_proc(LABEL(mercury__benchmark_1_0));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* Assigning from HeadVar__1 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); }
		/* restore the success ip */
	decr_sp(1);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate test_poly1/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__test_poly1_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* Start of procedure epilogue */
	{ static const Word mercury_const_3[] = {
		1
	  };
	  static const Word mercury_const_4[] = {
		0,
		mkword(mktag(1), mercury_const_3)
	  };
	  static const Word mercury_const_5[] = {
		1
	  };
	  static const Word mercury_const_6[] = {
		1,
		mkword(mktag(1), mercury_const_5)
	  };
	  static const Word mercury_const_7[] = {
		mkword(mktag(0), mercury_const_6),
		(Integer) mkword(mktag(0), mkbody(0))
	  };
	  static const Word mercury_const_8[] = {
		mkword(mktag(0), mercury_const_4),
		mkword(mktag(1), mercury_const_7)
	  };
	  static const Word mercury_const_9[] = {
		0,
		mkword(mktag(1), mercury_const_8)
	  };
	  r1 = mkword(mktag(0), mercury_const_9); }
		/* Assigning from HeadVar__1 */
/* End of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate test_poly2/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__test_poly2_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* Start of procedure epilogue */
	{ static const Word mercury_const_3[] = {
		1
	  };
	  static const Word mercury_const_4[] = {
		1,
		mkword(mktag(1), mercury_const_3)
	  };
	  static const Word mercury_const_5[] = {
		mkword(mktag(0), mercury_const_4),
		(Integer) mkword(mktag(0), mkbody(0))
	  };
	  static const Word mercury_const_6[] = {
		1,
		mkword(mktag(1), mercury_const_5)
	  };
	  r1 = mkword(mktag(0), mercury_const_6); }
		/* Assigning from HeadVar__1 */
/* End of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate test_poly3/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__test_poly3_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* Start of procedure epilogue */
	{ static const Word mercury_const_3[] = {
		1
	  };
	  static const Word mercury_const_4[] = {
		1,
		mkword(mktag(1), mercury_const_3)
	  };
	  static const Word mercury_const_5[] = {
		mkword(mktag(0), mercury_const_4),
		(Integer) mkword(mktag(0), mkbody(0))
	  };
	  static const Word mercury_const_6[] = {
		2,
		mkword(mktag(1), mercury_const_5)
	  };
	  r1 = mkword(mktag(0), mercury_const_6); }
		/* Assigning from HeadVar__1 */
/* End of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate test_poly/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__test_poly_1_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
	{ static const Word mercury_const_3[] = {
		1
	  };
	  static const Word mercury_const_4[] = {
		0,
		mkword(mktag(1), mercury_const_3)
	  };
	  static const Word mercury_const_5[] = {
		1
	  };
	  static const Word mercury_const_6[] = {
		1,
		mkword(mktag(1), mercury_const_5)
	  };
	  static const Word mercury_const_7[] = {
		mkword(mktag(0), mercury_const_6),
		(Integer) mkword(mktag(0), mkbody(0))
	  };
	  static const Word mercury_const_8[] = {
		mkword(mktag(0), mercury_const_4),
		mkword(mktag(1), mercury_const_7)
	  };
	  static const Word mercury_const_9[] = {
		0,
		mkword(mktag(1), mercury_const_8)
	  };
	  r1 = mkword(mktag(0), mercury_const_9); }
		/* Assigning from variable number 12 */
	{ static const Word mercury_const_10[] = {
		1
	  };
	  static const Word mercury_const_11[] = {
		1,
		mkword(mktag(1), mercury_const_10)
	  };
	  static const Word mercury_const_12[] = {
		mkword(mktag(0), mercury_const_11),
		(Integer) mkword(mktag(0), mkbody(0))
	  };
	  static const Word mercury_const_13[] = {
		1,
		mkword(mktag(1), mercury_const_12)
	  };
	  r2 = mkword(mktag(0), mercury_const_13); }
		/* Assigning from variable number 13 */
	incr_sp(1);
		/* late setup */
	{ detstackvar(1) = (Integer) succip; }
		/* late save */
	{ localcall(mercury__poly_add_3_0_l,
		LABEL(mercury__test_poly_1_0_i14),
		LABEL(mercury__test_poly_1_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(1)	succip
 *	r3	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__test_poly_1_0_i14);
	update_prof_current_proc(LABEL(mercury__test_poly_1_0_l));
		/* Continuation label */
	{ static const Word mercury_const_15[] = {
		1
	  };
	  static const Word mercury_const_16[] = {
		1,
		mkword(mktag(1), mercury_const_15)
	  };
	  static const Word mercury_const_17[] = {
		mkword(mktag(0), mercury_const_16),
		(Integer) mkword(mktag(0), mkbody(0))
	  };
	  static const Word mercury_const_18[] = {
		2,
		mkword(mktag(1), mercury_const_17)
	  };
	  r1 = mkword(mktag(0), mercury_const_18); }
		/* Assigning from variable number 4 */
	{ r2 = (Integer) r3; }
		/* Assigning from Q */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 */
	{ localcall(mercury__poly_add_3_0_l,
		LABEL(mercury__test_poly_1_0_i19),
		LABEL(mercury__test_poly_1_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(1)	succip
 *	r3	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__test_poly_1_0_i19);
	update_prof_current_proc(LABEL(mercury__test_poly_1_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* Assigning from HeadVar__1 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); }
		/* restore the success ip */
	decr_sp(1);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate poly_add/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Var1	 ->	stackvar(1)
HeadVar__2	 ->	stackvar(2)
Var2	 ->	stackvar(3)
HeadVar__1	 ->	stackvar(4)
Terms1	 ->	stackvar(5)
Var2	 ->	stackvar(1)
Terms2	 ->	stackvar(6)
Var1	 ->	stackvar(1)
 */
Define_local(mercury__poly_add_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if ((tag((Integer) r2) == mktag(0)))
		GOTO_LABEL(mercury__poly_add_3_0_i1000); }
		/* jump to setup */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury__poly_add_3_0_i1001); }
		/* jump to setup */
	{ tag_incr_hp(r3, mktag(1), 1); }
	{ r4 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ r5 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = ((Integer) r4 + (Integer) r5); }
		/* vn flush */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
Define_label(mercury__poly_add_3_0_i1001);
		/* label for late setup code */
	incr_sp(8);
		/* late setup after succip */
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__add_to_order_zero_term_3_0_l,
		LABEL(mercury__poly_add_3_0_i25),
		LABEL(mercury__poly_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
Define_label(mercury__poly_add_3_0_i25);
	update_prof_current_proc(LABEL(mercury__poly_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_add_3_0_i1000);
		/* label for late setup code */
	incr_sp(8);
		/* late setup after succip */
/* checking that HeadVar__1 has functor 'poly'/2 */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury__poly_add_3_0_i6); }
		/* tag test */
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* vn flush */
/* src_liveval(vn_reg(r(2))),  */
	{ r3 = (Integer) r1; }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
	{ r2 = (Integer) r3; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__add_to_order_zero_term_3_0_l,
		LABEL(mercury__poly_add_3_0_i21),
		LABEL(mercury__poly_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
Define_label(mercury__poly_add_3_0_i21);
	update_prof_current_proc(LABEL(mercury__poly_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_add_3_0_i6);
		/* next case */
	{ r3 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* Assigning from Terms2 */
	{ r4 = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* Assigning from Terms1 */
	{ r5 = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* Assigning from Var2 */
	{ r6 = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* Assigning from Var1 */
	{ if (((Integer) r6 != (Integer) r5))
		GOTO_LABEL(mercury__poly_add_3_0_i7); }
		/* Test for failure */
	{ r1 = (Integer) r4; }
		/* vn flush */
	{ r2 = (Integer) r3; }
		/* vn flush */
	{ detstackvar(1) = (Integer) r6; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__term_add_3_0_l,
		LABEL(mercury__poly_add_3_0_i9),
		LABEL(mercury__poly_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
Define_label(mercury__poly_add_3_0_i9);
	update_prof_current_proc(LABEL(mercury__poly_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_add_3_0_i7);
	{ mark_hp(detstackvar(7)); }
	{ detstackvar(2) = (Integer) r2; }
		/* vn flush */
	{ detstackvar(6) = (Integer) r3; }
		/* vn flush */
	{ r2 = (Integer) r6; }
		/* vn flush */
	{ r3 = (Integer) r5; }
		/* vn flush */
	{ detstackvar(1) = (Integer) r6; }
		/* vn flush */
	{ detstackvar(3) = (Integer) r5; }
		/* vn flush */
	{ detstackvar(4) = (Integer) r1; }
		/* vn flush */
	{ detstackvar(5) = (Integer) r4; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 *	detstackvar(4)
 *	detstackvar(5)
 *	detstackvar(6)
 *	detstackvar(7)
 *	detstackvar(8)
 */
	{ localcall(mercury__lt_2_0_l,
		LABEL(mercury__poly_add_3_0_i13),
		LABEL(mercury__poly_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	detstackvar(7)	hp
 *	detstackvar(1)	num(9)
 *	detstackvar(2)	num(8)
 *	detstackvar(3)	num(9)
 *	detstackvar(4)	num(8)
 *	detstackvar(5)	num(10)
 *	detstackvar(6)	num(10)
 */
Define_label(mercury__poly_add_3_0_i13);
	update_prof_current_proc(LABEL(mercury__poly_add_3_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		GOTO_LABEL(mercury__poly_add_3_0_i12); }
		/* fail */
	{ r1 = (Integer) detstackvar(5); }
		/* Assigning from Terms1 */
	{ r2 = (Integer) detstackvar(2); }
		/* Assigning from variable number 10 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__add_to_order_zero_term_3_0_l,
		LABEL(mercury__poly_add_3_0_i15),
		LABEL(mercury__poly_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
		/* branch to det procedure */
Define_label(mercury__poly_add_3_0_i15);
	update_prof_current_proc(LABEL(mercury__poly_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_add_3_0_i12);
	{ restore_hp((Integer) detstackvar(7)); }
	{ r1 = (Integer) detstackvar(6); }
		/* vn flush */
	{ r2 = (Integer) detstackvar(4); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 *	detstackvar(8)
 */
	{ localcall(mercury__add_to_order_zero_term_3_0_l,
		LABEL(mercury__poly_add_3_0_i17),
		LABEL(mercury__poly_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(3)	num(9)
 */
Define_label(mercury__poly_add_3_0_i17);
	update_prof_current_proc(LABEL(mercury__poly_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(3); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate term_add/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Terms1	 ->	stackvar(1)
HeadVar__2	 ->	stackvar(2)
E1	 ->	stackvar(3)
variable number 26	 ->	stackvar(4)
C2	 ->	stackvar(5)
HeadVar__1	 ->	stackvar(6)
C	 ->	stackvar(1)
E2	 ->	stackvar(7)
C1	 ->	stackvar(8)
variable number 27	 ->	stackvar(9)
Terms2	 ->	stackvar(10)
 */
Define_local(mercury__term_add_3_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that HeadVar__1 has functor '[]'/0 */
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__term_add_3_0_i1001); }
		/* tag test (teardown redirect) */
/* checking that HeadVar__2 has functor '[]'/0 */
	{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__term_add_3_0_i1000); }
		/* tag test (teardown redirect) */
	{ r3 = (Integer) field(mktag(1), (Integer) r2, 1); }
		/* Assigning from Terms2 */
	{ r4 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* Assigning from variable number 27 */
	{ r5 = (Integer) field(mktag(0), (Integer) field(mktag(1), (Integer) r2, 0), 0); }
		/* Assigning from E2 */
	{ r6 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* Assigning from variable number 26 */
	{ r7 = (Integer) field(mktag(0), (Integer) field(mktag(1), (Integer) r1, 0), 0); }
		/* Assigning from E1 */
	{ r8 = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* Assigning from Terms1 */
	incr_sp(11);
		/* late setup after succip */
	{ if (((Integer) r7 != (Integer) r5))
		GOTO_LABEL(mercury__term_add_3_0_i7); }
		/* Test for failure */
	{ r4 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* vn flush */
	{ r5 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ r2 = (Integer) field(mktag(0), (Integer) r4, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r5, 1); }
		/* vn flush */
	{ detstackvar(1) = (Integer) r8; }
		/* vn flush */
	{ detstackvar(3) = (Integer) r7; }
		/* vn flush */
	{ detstackvar(10) = (Integer) r3; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 *	detstackvar(10)
 *	detstackvar(11)
 */
	{ localcall(mercury__poly_add_3_0_l,
		LABEL(mercury__term_add_3_0_i9),
		LABEL(mercury__term_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(11)	succip
 *	r3	num(8)
 *	detstackvar(1)	num(10)
 *	detstackvar(3)	num(2)
 *	detstackvar(10)	num(10)
 */
Define_label(mercury__term_add_3_0_i9);
	update_prof_current_proc(LABEL(mercury__term_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* shuffle lval */
	{ detstackvar(1) = (Integer) r3; }
		/* Assigning from C */
	{ r2 = (Integer) detstackvar(10); }
		/* Assigning from Terms2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 *	detstackvar(11)
 */
	{ localcall(mercury__term_add_3_0_l,
		LABEL(mercury__term_add_3_0_i10),
		LABEL(mercury__term_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(11)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(8)
 *	detstackvar(3)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__term_add_3_0_i10);
	update_prof_current_proc(LABEL(mercury__term_add_3_0_l));
	{ incr_hp(r2, 4); }
	{ r1 = (Integer) mkword(mktag(1), (Integer) r2); }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 1) = (Integer) r3; }
		/* vn flush */
	{ r4 = (Integer) mkword(mktag(0), ((Integer) r2 + 8)); }
		/* vn flush */
	{ r3 = (Integer) r1; }
		/* vn flush */
	{ field(mktag(1), (Integer) r1, 0) = (Integer) r4; }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 1) = (Integer) detstackvar(1); }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 0) = (Integer) detstackvar(3); }
		/* vn flush */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(11); }
		/* vn flush */
	decr_sp(11);
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
Define_label(mercury__term_add_3_0_i7);
		/* End of failure continuation */
	{ if (((Integer) r7 >= (Integer) r5))
		GOTO_LABEL(mercury__term_add_3_0_i13); }
		/* Test for failure */
	{ detstackvar(4) = (Integer) r6; }
		/* Assigning from variable number 26 */
	{ r1 = (Integer) r8; }
		/* Assigning from Terms1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(4)
 *	detstackvar(11)
 */
	{ localcall(mercury__term_add_3_0_l,
		LABEL(mercury__term_add_3_0_i15),
		LABEL(mercury__term_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(11)	succip
 *	r3	num(10)
 *	detstackvar(4)	num(11)
 */
		/* branch to det procedure */
Define_label(mercury__term_add_3_0_i15);
	update_prof_current_proc(LABEL(mercury__term_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(1), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(4); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(11); }
		/* restore the success ip */
	decr_sp(11);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__term_add_3_0_i13);
		/* End of failure continuation */
	{ detstackvar(9) = (Integer) r4; }
		/* Assigning from variable number 27 */
	{ r2 = (Integer) r3; }
		/* Assigning from Terms2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(9)
 *	detstackvar(11)
 */
	{ localcall(mercury__term_add_3_0_l,
		LABEL(mercury__term_add_3_0_i17),
		LABEL(mercury__term_add_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(11)	succip
 *	r3	num(10)
 *	detstackvar(9)	num(11)
 */
		/* branch to det procedure */
Define_label(mercury__term_add_3_0_i17);
	update_prof_current_proc(LABEL(mercury__term_add_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(1), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(9); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(11); }
		/* restore the success ip */
	decr_sp(11);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__term_add_3_0_i1000);
		/* non-teardown parallel label */
	{ r3 = (Integer) r1; }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__term_add_3_0_i1001);
		/* non-teardown parallel label */
	{ r3 = (Integer) r2; }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate add_to_order_zero_term/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Terms	 ->	stackvar(1)
List	 ->	stackvar(1)
C2	 ->	stackvar(2)
 */
Define_local(mercury__add_to_order_zero_term_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 != (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__add_to_order_zero_term_3_0_i1000); }
		/* jump to setup */
	{ incr_hp(r5, 4); }
	{ r4 = (Integer) mkword(mktag(0), ((Integer) r5 + 8)); }
		/* vn flush */
	{ r3 = (Integer) mkword(mktag(1), (Integer) r5); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) r4; }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) r1; }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 1) = (Integer) r2; }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 0) = 0; }
		/* vn flush */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
Define_label(mercury__add_to_order_zero_term_3_0_i1000);
		/* label for late setup code */
	incr_sp(3);
		/* late setup after succip */
	{ r4 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ r5 = (Integer) field(mktag(0), (Integer) r4, 0); }
		/* vn flush */
	{ if (((Integer) r5 == 0))
		GOTO_LABEL(mercury__add_to_order_zero_term_3_0_i8); }
	{ Word temp1, temp2;
	{ incr_hp(temp2, 4); }
	{ temp1 = (Integer) mkword(mktag(0), ((Integer) temp2 + 8)); }
		/* vn flush */
	{ r3 = (Integer) mkword(mktag(1), (Integer) temp2); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) temp1; }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) r1; }
		/* vn flush */
	{ field(mktag(0), (Integer) temp1, 1) = (Integer) r2; }
		/* vn flush */
	{ field(mktag(0), (Integer) temp1, 0) = 0; }
		/* vn flush */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* vn flush */
	decr_sp(3);
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
	}

	incr_sp(3);
		/* late setup */
	{ detstackvar(3) = (Integer) succip; }
		/* late save */
Define_label(mercury__add_to_order_zero_term_3_0_i8);
	{ r3 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 */
	{ localcall(mercury__poly_add_3_0_l,
		LABEL(mercury__add_to_order_zero_term_3_0_i9),
		LABEL(mercury__add_to_order_zero_term_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(8)
 *	detstackvar(1)	num(10)
 */
Define_label(mercury__add_to_order_zero_term_3_0_i9);
	update_prof_current_proc(LABEL(mercury__add_to_order_zero_term_3_0_l));
	{ incr_hp(r2, 4); }
	{ r1 = (Integer) mkword(mktag(0), ((Integer) r2 + 8)); }
		/* vn flush */
	{ field(mktag(0), (Integer) r1, 1) = (Integer) r3; }
		/* vn flush */
	{ r3 = (Integer) mkword(mktag(1), (Integer) r2); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) r1; }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) detstackvar(1); }
		/* vn flush */
	{ field(mktag(0), (Integer) r1, 0) = 0; }
		/* vn flush */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* vn flush */
	decr_sp(3);
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }

/*-------------------------------------------------------------------------*/
/* code for predicate poly_exp/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
N	 ->	stackvar(1)
Poly	 ->	stackvar(2)
 */
Define_local(mercury__poly_exp_3_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that N has functor 0 */
	{ r3 = (Integer) r1; }
		/* Assigning from variable number 15 */
	{ if (((Integer) r1 == 0))
		GOTO_LABEL(mercury__poly_exp_3_0_i1000); }
		/* branch over failure (teardown redirect) */
	{ r4 = (((Integer) r1 / 2) * 2); }
		/* Assigning from variable number 17 */
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r3 != (Integer) r4))
		GOTO_LABEL(mercury__poly_exp_3_0_i1002); }
		/* jump to setup */
	{ r1 = ((Integer) r1 / 2); }
		/* vn flush */
	incr_sp(3);
		/* late setup after succip */
	{ localcall(mercury__poly_exp_3_0_l,
		LABEL(mercury__poly_exp_3_0_i10),
		LABEL(mercury__poly_exp_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(8)
 */
Define_label(mercury__poly_exp_3_0_i10);
	update_prof_current_proc(LABEL(mercury__poly_exp_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* Assigning from Part */
	{ r2 = (Integer) r1; }
		/* Assigning from variable number 12 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ localtailcall(mercury__poly_mul_3_0_l,
		LABEL(mercury__poly_exp_3_0_l)); }
		/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__poly_exp_3_0_i1002);
		/* label for late setup code */
	incr_sp(3);
		/* late setup after succip */
	{ r1 = ((Integer) r1 - 1); }
		/* vn flush */
	{ detstackvar(2) = (Integer) r2; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ localcall(mercury__poly_exp_3_0_l,
		LABEL(mercury__poly_exp_3_0_i12),
		LABEL(mercury__poly_exp_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(8)
 *	detstackvar(2)	num(8)
 */
Define_label(mercury__poly_exp_3_0_i12);
	update_prof_current_proc(LABEL(mercury__poly_exp_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(2); }
		/* Assigning from Poly */
	{ r2 = (Integer) r3; }
		/* Assigning from Part */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ localtailcall(mercury__poly_mul_3_0_l,
		LABEL(mercury__poly_exp_3_0_l)); }
		/* branch to det procedure (redirected return) */
Define_label(mercury__poly_exp_3_0_i1000);
		/* non-teardown parallel label */
	{ static const Word mercury_const_7[] = {
		1
	  };
	  r3 = mkword(mktag(1), mercury_const_7); }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */

/*-------------------------------------------------------------------------*/
/* code for predicate poly_mul/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Var1	 ->	stackvar(1)
HeadVar__2	 ->	stackvar(2)
Var2	 ->	stackvar(3)
HeadVar__1	 ->	stackvar(4)
Terms1	 ->	stackvar(5)
Var2	 ->	stackvar(1)
Terms2	 ->	stackvar(6)
Var1	 ->	stackvar(1)
 */
Define_local(mercury__poly_mul_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if ((tag((Integer) r2) == mktag(0)))
		GOTO_LABEL(mercury__poly_mul_3_0_i1000); }
		/* jump to setup */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury__poly_mul_3_0_i1001); }
		/* jump to setup */
	{ tag_incr_hp(r3, mktag(1), 1); }
	{ r4 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ r5 = (Integer) field(mktag(1), (Integer) r2, 0); }
		/* vn flush */
	{ field(mktag(1), (Integer) r3, 0) = ((Integer) r4 * (Integer) r5); }
		/* vn flush */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
Define_label(mercury__poly_mul_3_0_i1001);
		/* label for late setup code */
	incr_sp(8);
		/* late setup after succip */
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__mul_through_3_0_l,
		LABEL(mercury__poly_mul_3_0_i25),
		LABEL(mercury__poly_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
Define_label(mercury__poly_mul_3_0_i25);
	update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_mul_3_0_i1000);
		/* label for late setup code */
	incr_sp(8);
		/* late setup after succip */
/* checking that HeadVar__1 has functor 'poly'/2 */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury__poly_mul_3_0_i6); }
		/* tag test */
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* vn flush */
/* src_liveval(vn_reg(r(2))),  */
	{ r3 = (Integer) r1; }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
	{ r2 = (Integer) r3; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__mul_through_3_0_l,
		LABEL(mercury__poly_mul_3_0_i21),
		LABEL(mercury__poly_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
Define_label(mercury__poly_mul_3_0_i21);
	update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_mul_3_0_i6);
		/* next case */
	{ r3 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* Assigning from Terms2 */
	{ r4 = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* Assigning from Terms1 */
	{ r5 = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* Assigning from Var2 */
	{ r6 = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* Assigning from Var1 */
	{ if (((Integer) r6 != (Integer) r5))
		GOTO_LABEL(mercury__poly_mul_3_0_i7); }
		/* Test for failure */
	{ r1 = (Integer) r4; }
		/* vn flush */
	{ r2 = (Integer) r3; }
		/* vn flush */
	{ detstackvar(1) = (Integer) r6; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__term_mul_3_0_l,
		LABEL(mercury__poly_mul_3_0_i9),
		LABEL(mercury__poly_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
Define_label(mercury__poly_mul_3_0_i9);
	update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_mul_3_0_i7);
	{ mark_hp(detstackvar(7)); }
	{ detstackvar(2) = (Integer) r2; }
		/* vn flush */
	{ detstackvar(6) = (Integer) r3; }
		/* vn flush */
	{ r2 = (Integer) r6; }
		/* vn flush */
	{ r3 = (Integer) r5; }
		/* vn flush */
	{ detstackvar(1) = (Integer) r6; }
		/* vn flush */
	{ detstackvar(3) = (Integer) r5; }
		/* vn flush */
	{ detstackvar(4) = (Integer) r1; }
		/* vn flush */
	{ detstackvar(5) = (Integer) r4; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 *	detstackvar(4)
 *	detstackvar(5)
 *	detstackvar(6)
 *	detstackvar(7)
 *	detstackvar(8)
 */
	{ localcall(mercury__lt_2_0_l,
		LABEL(mercury__poly_mul_3_0_i13),
		LABEL(mercury__poly_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	detstackvar(7)	hp
 *	detstackvar(1)	num(9)
 *	detstackvar(2)	num(8)
 *	detstackvar(3)	num(9)
 *	detstackvar(4)	num(8)
 *	detstackvar(5)	num(10)
 *	detstackvar(6)	num(10)
 */
Define_label(mercury__poly_mul_3_0_i13);
	update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		GOTO_LABEL(mercury__poly_mul_3_0_i12); }
		/* fail */
	{ r1 = (Integer) detstackvar(5); }
		/* Assigning from Terms1 */
	{ r2 = (Integer) detstackvar(2); }
		/* Assigning from variable number 10 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(8)
 */
	{ localcall(mercury__mul_through_3_0_l,
		LABEL(mercury__poly_mul_3_0_i15),
		LABEL(mercury__poly_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(9)
 */
		/* branch to det procedure */
Define_label(mercury__poly_mul_3_0_i15);
	update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__poly_mul_3_0_i12);
	{ restore_hp((Integer) detstackvar(7)); }
	{ r1 = (Integer) detstackvar(6); }
		/* vn flush */
	{ r2 = (Integer) detstackvar(4); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 *	detstackvar(8)
 */
	{ localcall(mercury__mul_through_3_0_l,
		LABEL(mercury__poly_mul_3_0_i17),
		LABEL(mercury__poly_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(8)	succip
 *	r3	num(10)
 *	detstackvar(3)	num(9)
 */
Define_label(mercury__poly_mul_3_0_i17);
	update_prof_current_proc(LABEL(mercury__poly_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(0), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(0), (Integer) r3, 0) = (Integer) detstackvar(3); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(8); }
		/* restore the success ip */
	decr_sp(8);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate term_mul/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Terms1	 ->	stackvar(1)
PartA	 ->	stackvar(1)
HeadVar__2	 ->	stackvar(2)
 */
Define_local(mercury__term_mul_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__term_mul_3_0_i1001); }
		/*  (teardown redirect) */
	{ if (((Integer) r2 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__term_mul_3_0_i1000); }
		/*  (teardown redirect) */
	incr_sp(3);
		/* late setup after succip */
	{ detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ detstackvar(2) = (Integer) r2; }
		/* vn flush */
/* src_access(vn_field(1, 2, 3)), src_access(vn_field(1, 2, 3)),  */
	{ r3 = (Integer) r1; }
		/* vn flush */
	{ r1 = (Integer) r2; }
		/* vn flush */
	{ r2 = (Integer) field(mktag(1), (Integer) r3, 0); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ localcall(mercury__single_term_mul_3_0_l,
		LABEL(mercury__term_mul_3_0_i7),
		LABEL(mercury__term_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(10)
 *	detstackvar(2)	num(10)
 */
Define_label(mercury__term_mul_3_0_i7);
	update_prof_current_proc(LABEL(mercury__term_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* shuffle lval */
	{ detstackvar(1) = (Integer) r3; }
		/* Assigning from PartA */
	{ r2 = (Integer) detstackvar(2); }
		/* Assigning from variable number 14 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 */
	{ localcall(mercury__term_mul_3_0_l,
		LABEL(mercury__term_mul_3_0_i8),
		LABEL(mercury__term_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(10)
 */
		/* branch to det procedure */
Define_label(mercury__term_mul_3_0_i8);
	update_prof_current_proc(LABEL(mercury__term_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* Assigning from PartA */
	{ r2 = (Integer) r3; }
		/* Assigning from PartB */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ localtailcall(mercury__term_add_3_0_l,
		LABEL(mercury__term_mul_3_0_l)); }
		/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__term_mul_3_0_i1000);
		/* non-teardown parallel label */
	{ r3 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__term_mul_3_0_i1001);
		/* non-teardown parallel label */
	{ r3 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate single_term_mul/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
HeadVar__2	 ->	stackvar(1)
E	 ->	stackvar(2)
Terms1	 ->	stackvar(3)
variable number 15	 ->	stackvar(1)
 */
Define_local(mercury__single_term_mul_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__single_term_mul_3_0_i1000); }
		/*  (teardown redirect) */
	incr_sp(4);
		/* late setup after succip */
	{ r3 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ detstackvar(1) = (Integer) r2; }
		/* vn flush */
	{ detstackvar(2) = ((Integer) field(mktag(0), (Integer) r3, 0) + (Integer) field(mktag(0), (Integer) r2, 0)); }
		/* vn flush */
	{ detstackvar(3) = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ r2 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 *	detstackvar(4)
 */
	{ localcall(mercury__poly_mul_3_0_l,
		LABEL(mercury__single_term_mul_3_0_i5),
		LABEL(mercury__single_term_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(4)	succip
 *	r3	num(8)
 *	detstackvar(1)	num(11)
 *	detstackvar(2)	num(2)
 *	detstackvar(3)	num(10)
 */
Define_label(mercury__single_term_mul_3_0_i5);
	update_prof_current_proc(LABEL(mercury__single_term_mul_3_0_l));
	{ r2 = (Integer) detstackvar(1); }
		/* vn flush */
	{ tag_incr_hp(r4, mktag(0), 2); }
	{ detstackvar(1) = (Integer) r4; }
		/* vn flush */
	{ r1 = (Integer) detstackvar(3); }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 1) = (Integer) r3; }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 0) = (Integer) detstackvar(2); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(4)
 */
	{ localcall(mercury__single_term_mul_3_0_l,
		LABEL(mercury__single_term_mul_3_0_i7),
		LABEL(mercury__single_term_mul_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(4)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(11)
 */
Define_label(mercury__single_term_mul_3_0_i7);
	update_prof_current_proc(LABEL(mercury__single_term_mul_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(1), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(4); }
		/* restore the success ip */
	decr_sp(4);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__single_term_mul_3_0_i1000);
		/* non-teardown parallel label */
	{ r3 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate mul_through/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Poly	 ->	stackvar(1)
variable number 12	 ->	stackvar(1)
E	 ->	stackvar(2)
Terms	 ->	stackvar(3)
 */
Define_local(mercury__mul_through_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__mul_through_3_0_i1000); }
		/*  (teardown redirect) */
	incr_sp(4);
		/* late setup after succip */
	{ r3 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ detstackvar(3) = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ r4 = (Integer) field(mktag(0), (Integer) r3, 0); }
		/* vn flush */
	{ detstackvar(1) = (Integer) r2; }
		/* vn flush */
	{ detstackvar(2) = (Integer) r4; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 *	detstackvar(4)
 */
	{ localcall(mercury__poly_mul_3_0_l,
		LABEL(mercury__mul_through_3_0_i5),
		LABEL(mercury__mul_through_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(4)	succip
 *	r3	num(8)
 *	detstackvar(1)	num(8)
 *	detstackvar(2)	num(2)
 *	detstackvar(3)	num(10)
 */
Define_label(mercury__mul_through_3_0_i5);
	update_prof_current_proc(LABEL(mercury__mul_through_3_0_l));
	{ r2 = (Integer) detstackvar(1); }
		/* vn flush */
	{ tag_incr_hp(r4, mktag(0), 2); }
	{ detstackvar(1) = (Integer) r4; }
		/* vn flush */
	{ r1 = (Integer) detstackvar(3); }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 1) = (Integer) r3; }
		/* vn flush */
	{ field(mktag(0), (Integer) r4, 0) = (Integer) detstackvar(2); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(4)
 */
	{ localcall(mercury__mul_through_3_0_l,
		LABEL(mercury__mul_through_3_0_i7),
		LABEL(mercury__mul_through_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(4)	succip
 *	r3	num(10)
 *	detstackvar(1)	num(11)
 */
Define_label(mercury__mul_through_3_0_i7);
	update_prof_current_proc(LABEL(mercury__mul_through_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) r3; }
		/* shuffle lval */
	{ tag_incr_hp(r3, mktag(1), 2); }
		/* Allocating heap for HeadVar__3 */
	{ field(mktag(1), (Integer) r3, 0) = (Integer) detstackvar(1); }
		/* Assigning from  */
	{ field(mktag(1), (Integer) r3, 1) = (Integer) r1; }
		/* Assigning from  */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(4); }
		/* restore the success ip */
	decr_sp(4);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__mul_through_3_0_i1000);
		/* non-teardown parallel label */
	{ r3 = (Integer) mkword(mktag(0), mkbody(0)); }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate lt/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__lt_2_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that HeadVar__2 has functor 'y'/0 */
	{ if (((Integer) r3 != 1))
		GOTO_LABEL(mercury__lt_2_0_i4); }
		/* tag test */
/* checking that HeadVar__1 has functor 'x'/0 */
	{ if (((Integer) r2 == 0))
		GOTO_LABEL(mercury__lt_2_0_i6); }
		/* branch over failure */
/* no succip restoration */
/* no sp restoration */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__lt_2_0_i6);
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__lt_2_0_i4);
		/* next case */
/* checking that HeadVar__2 has functor 'z'/0 */
	{ if (((Integer) r3 != 2))
		GOTO_LABEL(mercury__lt_2_0_i7); }
		/* tag test */
/* checking that HeadVar__1 has functor 'x'/0 */
	{ if (((Integer) r2 == 0))
		GOTO_LABEL(mercury__lt_2_0_i8); }
		/* skip to the end of the switch */
/* checking that HeadVar__1 has functor 'y'/0 */
	{ if (((Integer) r2 == 1))
		GOTO_LABEL(mercury__lt_2_0_i8); }
		/* skip to the end of the switch */
/* no succip restoration */
/* no sp restoration */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__lt_2_0_i8);
		/* End of switch */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__lt_2_0_i7);
		/* next case */
/* no succip restoration */
/* no sp restoration */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */

/*-------------------------------------------------------------------------*/
/* code for predicate even/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__even_1_0_l);
	{ if (((Integer) r2 != (((Integer) r2 / 2) * 2)))
		GOTO_LABEL(mercury__even_1_0_i1); }
	{ r1 = TRUE; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury__even_1_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate print_poly/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
N	 ->	stackvar(1)
Terms	 ->	stackvar(1)
Var	 ->	stackvar(2)
 */
Define_local(mercury__print_poly_3_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that HeadVar__1 has functor 'poly'/2 */
	incr_sp(3);
		/* late setup */
	{ detstackvar(3) = (Integer) succip; }
		/* late save */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury__print_poly_3_0_i4); }
		/* tag test */
	{ detstackvar(1) = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
	{ r1 = string_const("const(", 6); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_poly_3_0_i10),
		LABEL(mercury__print_poly_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(1)	num(2)
 */
Define_label(mercury__print_poly_3_0_i10);
	update_prof_current_proc(LABEL(mercury__print_poly_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* Assigning from N */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_int_3_0);
	  call(ENTRY(mercury__io__write_int_3_0),
		LABEL(mercury__print_poly_3_0_i11),
		LABEL(mercury__print_poly_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__print_poly_3_0_i11);
	update_prof_current_proc(LABEL(mercury__print_poly_3_0_l));
		/* Continuation label */
	{ r1 = string_const(")", 1); }
		/* Assigning from variable number 9 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_2 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_poly_3_0_l)); }
		/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_poly_3_0_i4);
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* vn flush */
	{ detstackvar(2) = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* vn flush */
	{ r1 = string_const("poly(", 5); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_poly_3_0_i5),
		LABEL(mercury__print_poly_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(1)	num(10)
 *	detstackvar(2)	num(9)
 */
Define_label(mercury__print_poly_3_0_i5);
	update_prof_current_proc(LABEL(mercury__print_poly_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(2); }
		/* Assigning from Var */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 */
	{ localcall(mercury__print_var_3_0_l,
		LABEL(mercury__print_poly_3_0_i6),
		LABEL(mercury__print_poly_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(1)	num(10)
 */
		/* branch to det procedure */
Define_label(mercury__print_poly_3_0_i6);
	update_prof_current_proc(LABEL(mercury__print_poly_3_0_l));
		/* Continuation label */
	{ r1 = string_const(", ", 2); }
		/* Assigning from variable number 20 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_poly_3_0_i7),
		LABEL(mercury__print_poly_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(1)	num(10)
 */
		/* branch to det procedure */
Define_label(mercury__print_poly_3_0_i7);
	update_prof_current_proc(LABEL(mercury__print_poly_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* Assigning from Terms */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_3 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ localcall(mercury__print_terms_3_0_l,
		LABEL(mercury__print_poly_3_0_i8),
		LABEL(mercury__print_poly_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__print_poly_3_0_i8);
	update_prof_current_proc(LABEL(mercury__print_poly_3_0_l));
		/* Continuation label */
	{ r1 = string_const(")", 1); }
		/* Assigning from variable number 19 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_4 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_poly_3_0_l)); }
		/* branch to det procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate print_var/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__print_var_3_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that HeadVar__1 has functor 'x'/0 */
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 != 0))
		GOTO_LABEL(mercury__print_var_3_0_i1001); }
		/* jump to setup */
	{ r1 = string_const("x", 1); }
		/* Assigning from variable number 6 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_var_3_0_l)); }
		/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_var_3_0_i1001);
		/* label for late setup code */
	{ if (((Integer) r1 != 1))
		GOTO_LABEL(mercury__print_var_3_0_i1000); }
		/* tag test (teardown redirect) */
	{ r1 = string_const("y", 1); }
		/* Assigning from variable number 9 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_var_3_0_l)); }
		/* branch to det procedure (redirected return) (redirected return) */
Define_label(mercury__print_var_3_0_i1000);
		/* non-teardown parallel label */
	{ r1 = string_const("z", 1); }
		/* Assigning from variable number 12 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_var_3_0_l)); }
		/* branch to det procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate print_terms/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
Terms	 ->	stackvar(1)
DCG_0	 ->	stackvar(2)
 */
Define_local(mercury__print_terms_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__print_terms_3_0_i1000); }
		/*  (teardown redirect) */
	incr_sp(3);
		/* late setup after succip */
	{ detstackvar(1) = (Integer) r1; }
		/* vn flush */
	{ r1 = string_const("[", 1); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_terms_3_0_i8),
		LABEL(mercury__print_terms_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(1)	num(10)
 */
Define_label(mercury__print_terms_3_0_i8);
	update_prof_current_proc(LABEL(mercury__print_terms_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* Assigning from Terms */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ localcall(mercury__print_terms_2_3_0_l,
		LABEL(mercury__print_terms_3_0_i9),
		LABEL(mercury__print_terms_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__print_terms_3_0_i9);
	update_prof_current_proc(LABEL(mercury__print_terms_3_0_l));
		/* Continuation label */
	{ r1 = string_const("]", 1); }
		/* Assigning from variable number 11 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_3 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_terms_3_0_l)); }
		/* branch to det procedure (redirected return) */
Define_label(mercury__print_terms_3_0_i1000);
		/* non-teardown parallel label */
	{ r1 = string_const("[]\n", 3); }
		/* Assigning from variable number 10 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_terms_3_0_l)); }
		/* branch to det procedure (redirected return) (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate print_terms_2/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
DCG_1	 ->	stackvar(1)
Terms	 ->	stackvar(2)
 */
Define_local(mercury__print_terms_2_3_0_l);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__print_terms_2_3_0_i1001); }
		/*  (teardown redirect) */
	incr_sp(3);
		/* late setup after succip */
	{ detstackvar(2) = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ localcall(mercury__print_term_3_0_l,
		LABEL(mercury__print_terms_2_3_0_i5),
		LABEL(mercury__print_terms_2_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(2)	num(10)
 */
Define_label(mercury__print_terms_2_3_0_i5);
	update_prof_current_proc(LABEL(mercury__print_terms_2_3_0_l));
	{ if (((Integer) detstackvar(2) == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__print_terms_2_3_0_i9); }
	{ r1 = string_const(", ", 2); }
		/* vn flush */
	{ r2 = (Integer) r3; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_terms_2_3_0_i10),
		LABEL(mercury__print_terms_2_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(2)	num(10)
 */
Define_label(mercury__print_terms_2_3_0_i9);
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__print_terms_2_3_0_i10);
	update_prof_current_proc(LABEL(mercury__print_terms_2_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(2); }
		/* Assigning from Terms */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_3 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	{ if (((Integer) r1 == (Integer) mkword(mktag(0), mkbody(0))))
		GOTO_LABEL(mercury__print_terms_2_3_0_i4); }
		/*  (teardown redirect) (original) */
	{ detstackvar(2) = (Integer) field(mktag(1), (Integer) r1, 1); }
		/* vn flush */
	{ r1 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ localcall(mercury__print_term_3_0_l,
		LABEL(mercury__print_terms_2_3_0_i5),
		LABEL(mercury__print_terms_2_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(2)	num(10)
 */
Define_label(mercury__print_terms_2_3_0_i4);
		/* next case */
	{ r3 = (Integer) r2; }
		/* Assigning from HeadVar__3 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__print_terms_2_3_0_i1001);
		/* non-teardown parallel label */
	{ r3 = (Integer) r2; }
		/* Assigning from HeadVar__3 */
/*
 * Live lvalues:
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate print_term/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
N	 ->	stackvar(1)
Poly	 ->	stackvar(2)
 */
Define_local(mercury__print_term_3_0_l);
	incr_sp(3);
		/* late setup */
	{ detstackvar(3) = (Integer) succip; }
		/* late save */
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* vn flush */
	{ detstackvar(2) = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* vn flush */
	{ r1 = string_const("term(", 5); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_term_3_0_i3),
		LABEL(mercury__print_term_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(1)	num(2)
 *	detstackvar(2)	num(8)
 */
Define_label(mercury__print_term_3_0_i3);
	update_prof_current_proc(LABEL(mercury__print_term_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(1); }
		/* Assigning from N */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_int_3_0);
	  call(ENTRY(mercury__io__write_int_3_0),
		LABEL(mercury__print_term_3_0_i4),
		LABEL(mercury__print_term_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(2)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__print_term_3_0_i4);
	update_prof_current_proc(LABEL(mercury__print_term_3_0_l));
		/* Continuation label */
	{ r1 = string_const(", ", 2); }
		/* Assigning from variable number 13 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(2)
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_term_3_0_i5),
		LABEL(mercury__print_term_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 *	detstackvar(2)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__print_term_3_0_i5);
	update_prof_current_proc(LABEL(mercury__print_term_3_0_l));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(2); }
		/* Assigning from Poly */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_3 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ localcall(mercury__print_poly_3_0_l,
		LABEL(mercury__print_term_3_0_i6),
		LABEL(mercury__print_term_3_0_l)); }
/*
 * Garbage collection livevals info
 *	detstackvar(3)	succip
 *	r3	num(7)
 */
		/* branch to det procedure */
Define_label(mercury__print_term_3_0_i6);
	update_prof_current_proc(LABEL(mercury__print_term_3_0_l));
		/* Continuation label */
	{ r1 = string_const(")", 1); }
		/* Assigning from variable number 12 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_4 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(3); }
		/* restore the success ip */
	decr_sp(3);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	detstackvar(3)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  tailcall(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__print_term_3_0_l)); }
		/* branch to det procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate __Unify__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Unify___var_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
	{ if (((Integer) r2 != (Integer) r3))
		GOTO_LABEL(mercury____Unify___var_0_0_i1); }
		/* Test for failure */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury____Unify___var_0_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Index__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Index___var_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
/*
 * Live lvalues:
 *	r1
 *	detstackvar(1)
 */
	{ Declare_entry(mercury__builtin_index_int_2_0);
	  tailcall(ENTRY(mercury__builtin_index_int_2_0),
		LABEL(mercury____Index___var_0_0)); }
		/* branch to det procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate __Compare__/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Compare___var_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(1)
 */
	{ Declare_entry(mercury__builtin_compare_int_3_0);
	  tailcall(ENTRY(mercury__builtin_compare_int_3_0),
		LABEL(mercury____Compare___var_0_0)); }
		/* branch to det procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate __Unify__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Unify___pterm_0_0);
	{ r1 = (Integer) field(mktag(0), (Integer) r3, 0); }
		/* vn flush */
	{ r4 = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* vn flush */
	{ if (((Integer) r4 != (Integer) r1))
		GOTO_LABEL(mercury____Unify___pterm_0_0_i1000); }
		/*  (teardown redirect) */
	{ r3 = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ r2 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(1)
 */
	{ localtailcall(mercury____Unify___poly_0_0,
		LABEL(mercury____Unify___pterm_0_0)); }
Define_label(mercury____Unify___pterm_0_0_i1000);
		/* non-teardown parallel label */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Index__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Index___pterm_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
/* Start of procedure epilogue */
	{ r2 = 0; }
		/* Assigning from variable number 2 */
/* End of procedure epilogue */
/*
 * Live lvalues:
 *	r2
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Compare__/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
variable number 8	 ->	stackvar(1)
variable number 4	 ->	stackvar(1)
variable number 6	 ->	stackvar(2)
variable number 5	 ->	stackvar(3)
variable number 7	 ->	stackvar(4)
 */
Define_entry(mercury____Compare___pterm_0_0);
	incr_sp(6);
		/* late setup */
	{ detstackvar(6) = (Integer) succip; }
		/* late save */
	{ mark_hp(detstackvar(5)); }
	{ detstackvar(3) = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
	{ detstackvar(4) = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ r2 = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* vn flush */
	{ r3 = (Integer) field(mktag(0), (Integer) r3, 0); }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(3)
 *	detstackvar(4)
 *	detstackvar(5)
 *	detstackvar(6)
 */
	{ Declare_entry(mercury__builtin_compare_int_3_0);
	  call(ENTRY(mercury__builtin_compare_int_3_0),
		LABEL(mercury____Compare___pterm_0_0_i5),
		LABEL(mercury____Compare___pterm_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(6)	succip
 *	r1	num(12)
 *	detstackvar(5)	hp
 *	detstackvar(3)	num(8)
 *	detstackvar(4)	num(8)
 */
Define_label(mercury____Compare___pterm_0_0_i5);
	update_prof_current_proc(LABEL(mercury____Compare___pterm_0_0));
	{ if (((Integer) r1 == 0))
		GOTO_LABEL(mercury____Compare___pterm_0_0_i9); }
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(6); }
		/* vn flush */
	decr_sp(6);
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury____Compare___pterm_0_0_i9);
	{ restore_hp((Integer) detstackvar(5)); }
	{ r2 = (Integer) detstackvar(3); }
		/* vn flush */
	{ r3 = (Integer) detstackvar(4); }
		/* vn flush */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(6); }
		/* vn flush */
	decr_sp(6);
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(6)
 */
	{ localtailcall(mercury____Compare___poly_0_0,
		LABEL(mercury____Compare___pterm_0_0)); }

/*-------------------------------------------------------------------------*/
/* code for predicate __Unify__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Unify___poly_0_0);
	{ detstackvar(0) = (Integer) succip; }
		/* late save */
	{ if ((tag((Integer) r3) != mktag(0)))
		GOTO_LABEL(mercury____Unify___poly_0_0_i1001); }
		/* jump to setup */
	{ if ((tag((Integer) r2) == mktag(0)))
		GOTO_LABEL(mercury____Unify___poly_0_0_i1002); }
		/* jump to setup */
	{ r1 = FALSE; }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury____Unify___poly_0_0_i1002);
		/* label for late setup code */
	{ r1 = (Integer) field(mktag(0), (Integer) r3, 0); }
		/* vn flush */
	{ r5 = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* vn flush */
	{ if (((Integer) r5 != (Integer) r1))
		GOTO_LABEL(mercury____Unify___poly_0_0_i1000); }
		/*  (teardown redirect) */
	{ r4 = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ r3 = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
	{ static const Word * mercury_const_7[] = {
		(Word *) 0,
		(Word *) (Integer) LABEL(mercury____Unify___pterm_0_0),
		(Word *) (Integer) LABEL(mercury____Index___pterm_0_0),
		(Word *) (Integer) LABEL(mercury____Compare___pterm_0_0)
	  };
	  r2 = mkword(mktag(0), mercury_const_7); }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	r4
 *	detstackvar(1)
 */
	{ Declare_entry(mercury____Unify___list_1_0);
	  tailcall(ENTRY(mercury____Unify___list_1_0),
		LABEL(mercury____Unify___poly_0_0)); }
Define_label(mercury____Unify___poly_0_0_i1001);
		/* label for late setup code */
	incr_sp(1);
		/* late setup after succip */
/* checking that variable number 1 has functor 'const'/1 */
	{ if ((tag((Integer) r2) == mktag(1)))
		GOTO_LABEL(mercury____Unify___poly_0_0_i11); }
		/* branch over failure */
	{ r1 = FALSE; }
		/* Fail */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); }
		/* restore the success ip */
	decr_sp(1);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury____Unify___poly_0_0_i11);
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(1); }
		/* restore the success ip */
	decr_sp(1);
		/* Deallocate stack frame */
	{ if (((Integer) field(mktag(1), (Integer) r2, 0) != (Integer) field(mktag(1), (Integer) r3, 0)))
		GOTO_LABEL(mercury____Unify___poly_0_0_i1000); }
		/* Test for failure (teardown redirect) */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury____Unify___poly_0_0_i1000);
		/* non-teardown parallel label */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Index__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Index___poly_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
/* checking that variable number 1 has functor 'poly'/2 */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury____Index___poly_0_0_i4); }
		/* tag test */
	{ r2 = 1; }
		/* Assigning from variable number 2 */
/* no succip restoration */
/* no sp restoration */
/*
 * Live lvalues:
 *	r2
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury____Index___poly_0_0_i4);
		/* next case */
	{ r2 = 0; }
		/* Assigning from variable number 2 */
/* Start of procedure epilogue */
/* End of procedure epilogue */
/*
 * Live lvalues:
 *	r2
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Compare__/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
variable number 8	 ->	stackvar(1)
variable number 4	 ->	stackvar(2)
variable number 2	 ->	stackvar(1)
variable number 10	 ->	stackvar(3)
variable number 9	 ->	stackvar(4)
variable number 5	 ->	stackvar(5)
variable number 3	 ->	stackvar(3)
variable number 11	 ->	stackvar(4)
variable number 7	 ->	stackvar(6)
 */
Define_entry(mercury____Compare___poly_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
	incr_sp(9);
		/* late setup */
	{ detstackvar(9) = (Integer) succip; }
		/* late save */
	{ detstackvar(1) = (Integer) r2; }
		/* Assigning from variable number 2 */
	{ detstackvar(3) = (Integer) r3; }
		/* Assigning from variable number 3 */
	{ r1 = (Integer) r2; }
		/* Assigning from variable number 2 */
/*
 * Live lvalues:
 *	r1
 *	detstackvar(1)
 *	detstackvar(3)
 *	detstackvar(9)
 */
	{ localcall(mercury____Index___poly_0_0,
		LABEL(mercury____Compare___poly_0_0_i3),
		LABEL(mercury____Compare___poly_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(9)	succip
 *	r2	num(2)
 *	detstackvar(1)	num(8)
 *	detstackvar(3)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury____Compare___poly_0_0_i3);
	update_prof_current_proc(LABEL(mercury____Compare___poly_0_0));
		/* Continuation label */
	{ detstackvar(2) = (Integer) r2; }
		/* Assigning from variable number 4 */
	{ r1 = (Integer) detstackvar(3); }
		/* Assigning from variable number 3 */
/*
 * Live lvalues:
 *	r1
 *	detstackvar(1)
 *	detstackvar(2)
 *	detstackvar(3)
 *	detstackvar(9)
 */
	{ localcall(mercury____Index___poly_0_0,
		LABEL(mercury____Compare___poly_0_0_i4),
		LABEL(mercury____Compare___poly_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(9)	succip
 *	r2	num(2)
 *	detstackvar(1)	num(8)
 *	detstackvar(2)	num(2)
 *	detstackvar(3)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury____Compare___poly_0_0_i4);
	update_prof_current_proc(LABEL(mercury____Compare___poly_0_0));
		/* Continuation label */
	{ r1 = (Integer) detstackvar(3); }
		/* Assigning from variable number 3 */
	{ r3 = (Integer) detstackvar(1); }
		/* Assigning from variable number 2 */
	{ r4 = (Integer) detstackvar(2); }
		/* Assigning from variable number 4 */
	{ if (((Integer) r4 >= (Integer) r2))
		GOTO_LABEL(mercury____Compare___poly_0_0_i5); }
		/* Test for failure */
	{ r1 = 1; }
		/* Assigning from variable number 1 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* restore the success ip */
	decr_sp(9);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury____Compare___poly_0_0_i5);
		/* End of failure continuation */
	{ if (((Integer) r4 <= (Integer) r2))
		GOTO_LABEL(mercury____Compare___poly_0_0_i7); }
		/* Test for failure */
	{ r1 = 2; }
		/* Assigning from variable number 1 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* restore the success ip */
	decr_sp(9);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury____Compare___poly_0_0_i7);
		/* End of failure continuation */
	{ mark_hp(detstackvar(7)); }
		/* Save heap pointer */
/* checking that variable number 2 has functor 'poly'/2 */
	{ if ((tag((Integer) r3) != mktag(0)))
		GOTO_LABEL(mercury____Compare___poly_0_0_i12); }
		/* tag test */
/* checking that variable number 3 has functor 'poly'/2 */
	{ if ((tag((Integer) r1) == mktag(0)))
		GOTO_LABEL(mercury____Compare___poly_0_0_i14); }
		/* branch over failure */
	{ restore_hp((Integer) detstackvar(7)); }
		/* Restore heap pointer */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* restore the success ip */
	decr_sp(9);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	detstackvar(9)
 */
	{ Declare_entry(mercury__compare_error_0_0);
	  tailcall(ENTRY(mercury__compare_error_0_0),
		LABEL(mercury____Compare___poly_0_0)); }
		/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___poly_0_0_i14);
	{ mark_hp(detstackvar(8)); }
	{ r2 = (Integer) field(mktag(0), (Integer) r3, 0); }
		/* vn flush */
	{ detstackvar(1) = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ r3 = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* vn flush */
	{ r4 = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* vn flush */
	{ detstackvar(3) = (Integer) r4; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(1)
 *	detstackvar(3)
 *	detstackvar(7)
 *	detstackvar(8)
 *	detstackvar(9)
 */
	{ Declare_entry(mercury__builtin_compare_int_3_0);
	  call(ENTRY(mercury__builtin_compare_int_3_0),
		LABEL(mercury____Compare___poly_0_0_i17),
		LABEL(mercury____Compare___poly_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(9)	succip
 *	r1	num(12)
 *	detstackvar(8)	hp
 *	detstackvar(7)	hp
 *	detstackvar(1)	num(10)
 *	detstackvar(3)	num(10)
 */
Define_label(mercury____Compare___poly_0_0_i17);
	update_prof_current_proc(LABEL(mercury____Compare___poly_0_0));
	{ if (((Integer) r1 != 0))
		GOTO_LABEL(mercury____Compare___poly_0_0_i29); }
	{ restore_hp((Integer) detstackvar(8)); }
	{ static const Word * mercury_const_22[] = {
		(Word *) 0,
		(Word *) (Integer) LABEL(mercury____Unify___pterm_0_0),
		(Word *) (Integer) LABEL(mercury____Index___pterm_0_0),
		(Word *) (Integer) LABEL(mercury____Compare___pterm_0_0)
	  };
	  r1 = mkword(mktag(0), mercury_const_22); }
		/* vn flush */
	{ r3 = (Integer) detstackvar(1); }
		/* vn flush */
	{ r4 = (Integer) detstackvar(3); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r3
 *	r4
 *	detstackvar(7)
 *	detstackvar(9)
 */
	{ Declare_entry(mercury____Compare___list_1_0);
	  call(ENTRY(mercury____Compare___list_1_0),
		LABEL(mercury____Compare___poly_0_0_i24),
		LABEL(mercury____Compare___poly_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(9)	succip
 *	r2	num(12)
 *	detstackvar(7)	hp
 */
Define_label(mercury____Compare___poly_0_0_i24);
	update_prof_current_proc(LABEL(mercury____Compare___poly_0_0));
		/* end of if-then-else */
	{ r1 = (Integer) r2; }
		/* Assigning from variable number 1 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* restore the success ip */
	decr_sp(9);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury____Compare___poly_0_0_i12);
		/* next case */
/* checking that variable number 3 has functor 'const'/1 */
	{ if ((tag((Integer) r1) == mktag(1)))
		GOTO_LABEL(mercury____Compare___poly_0_0_i26); }
		/* branch over failure */
	{ restore_hp((Integer) detstackvar(7)); }
		/* Restore heap pointer */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* restore the success ip */
	decr_sp(9);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	detstackvar(9)
 */
	{ Declare_entry(mercury__compare_error_0_0);
	  tailcall(ENTRY(mercury__compare_error_0_0),
		LABEL(mercury____Compare___poly_0_0)); }
		/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___poly_0_0_i26);
	{ r2 = (Integer) field(mktag(1), (Integer) r3, 0); }
		/* Assigning from variable number 12 */
	{ r3 = (Integer) field(mktag(1), (Integer) r1, 0); }
		/* Assigning from variable number 13 */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* vn flush */
	decr_sp(9);
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(7)
 *	detstackvar(9)
 */
	{ Declare_entry(mercury__builtin_compare_int_3_0);
	  tailcall(ENTRY(mercury__builtin_compare_int_3_0),
		LABEL(mercury____Compare___poly_0_0)); }
		/* branch to det procedure (redirected return) */
Define_label(mercury____Compare___poly_0_0_i29);
		/* end of if-then-else */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(9); }
		/* restore the success ip */
	decr_sp(9);
		/* Deallocate stack frame */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
END_MODULE

#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
	|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
	|| defined(DEBUG_LABELS) || !defined(SPEED)

static void mercury__poly_bunch_0(void)
{
	mercury__poly_module();
}

#endif

void mercury__poly__init(void); /* suppress gcc warning */
void mercury__poly__init(void)
{
#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
	|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
	|| defined(DEBUG_LABELS) || !defined(SPEED)

	mercury__poly_bunch_0();
#endif
}