	.text
	.section	.text.doit,"ax",@progbits
	.hidden	doit
	.globl	doit
	.type	doit,@function
doit:                                   # @doit
	.param  	i32
	.result 	i32
# BB#0:                                 # %entry
	i32.const	$push1=, .L.str
	i32.const	$push0=, .L.str.1
	i32.select	$push2=, $pop1, $pop0, $0
	i32.const	$push3=, 1
	i32.add 	$push4=, $pop2, $pop3
                                        # fallthrough-return: $pop4
	.endfunc
.Lfunc_end0:
	.size	doit, .Lfunc_end0-doit

	.section	.text.main,"ax",@progbits
	.hidden	main
	.globl	main
	.type	main,@function
main:                                   # @main
	.result 	i32
# BB#0:                                 # %if.then
	i32.const	$push0=, 0
	call    	exit@FUNCTION, $pop0
	unreachable
	.endfunc
.Lfunc_end1:
	.size	main, .Lfunc_end1-main

	.type	.L.str,@object          # @.str
	.section	.rodata.cst8,"aM",@progbits,8
.L.str:
	.asciz	"\000wrong\n"
	.size	.L.str, 8

	.type	.L.str.1,@object        # @.str.1
.L.str.1:
	.asciz	"\000right\n"
	.size	.L.str.1, 8


	.functype	exit, void, i32
