	.text
	.allow_optimizations
	.file	"3"
	.section	.text.__runCodelet_LayerNormF16,"ax",@progbits
	.globl	__runCodelet_LayerNormF16       # -- Begin function __runCodelet_LayerNormF16
	.p2align	2
	.type	__runCodelet_LayerNormF16,@function
__runCodelet_LayerNormF16:              # @__runCodelet_LayerNormF16
	.worker
.Lfunc_begin0:
# %bb.0:                                # %entry
	setzi $m6, 8
	cmpult $m6, $m6, __worker_stack_max_growth_plus_one
	brz $m6, _stackoverflow
	add $m11, $m12, -8
	get $m0, 1
	ld32 $m2, $m13, $m15, 7
	and $m0, $m0, 7
	ld32 $m1, $m13, $m15, 6
	brz $m2, .LBB0_6
# %bb.1:                                # %for.body10.preheader.i
	ld64 $ap0, $m1, $m15, 0
	{
		ld64 $ap1, $m1, $m15, 1
		f32v2add $ap0, $ap0, $apzero
	}
	{
		ld64 $ap1, $m1, $m15, 2
		f32v2add $ap0, $ap0, $ap1
	}
	{
		ld64 $ap1, $m1, $m15, 3
		f32v2add $ap0, $ap0, $ap1
	}
	{
		ld64 $ap1, $m1, $m15, 4
		f32v2add $ap0, $ap0, $ap1
	}
	{
		ld64 $ap1, $m1, $m15, 5
		f32v2add $ap0, $ap0, $ap1
	}
	{
		ld32 $a3, $m13, $m15, 5
		f32v2add $ap0, $ap0, $ap1
	}
	{
		cmpeq $m3, $m2, 1
		f32add $a0, $a0, $a1
	}
	{
		mov	$m2, $a3
		f32fromui32 $a2, $a3
	}
	{
		shr $m2, $m2, 1
		f32div $a0, $a0, $a2
	}
	brz $m3, .LBB0_2
# %bb.11:                               # %for.cond24.preheader.i
	cmpult $m3, $m0, $m2
	brz $m3, .LBB0_12
# %bb.15:                               # %for.body29.lr.ph.i
	{
		xnor $m3, $m0, $m15
		zero	$ap1
	}
	add $m2, $m3, $m2
	setzi $m3, 43691
	sort4x16lo $m4, $m2, $m15
	shr $m2, $m2, 16
	mul $m5, $m4, $m3
	mul $m3, $m2, $m3
	shr $m5, $m5, 16
	add $m3, $m3, $m5
	setzi $m5, 43690
	sort4x16lo $m6, $m3, $m15
	mul $m4, $m4, $m5
	shr $m3, $m3, 16
	mul $m2, $m2, $m5
	add $m4, $m4, $m6
	add $m2, $m2, $m3
	shr $m3, $m4, 16
	add $m2, $m2, $m3
	ld32 $m3, $m13, $m15, 0
	shl $m4, $m0, 2
	{
		shr $m5, $m2, 2
		mov	$a1, $a0
	}
	add $m2, $m3, $m4
	add $m3, $m5, 1
	ld32step $a4, $m15, $m2+=, 6
	{
		setzi $m4, 1
		f16v2tof32 $ap2, $a4
	}
	{
		cmpslt $m4, $m4, $m3
		f32v2sub $ap2, $ap2, $ap0
	}
	{
		add $m3, $m3, -1
		f32v2mul $ap2, $ap2, $ap2
	}
	brz $m4, .LBB0_18
# %bb.16:                               # %for.body29.i
	add $m3, $m3, -1
.LBB0_17:                               # %for.body29.i
                                        # =>This Inner Loop Header: Depth=1
	{
		ld32step $a6, $m15, $m2+=, 6
		f32v2add $ap1, $ap2, $ap1
	}
	f16v2tof32 $ap2, $a6
	f32v2sub $ap2, $ap2, $ap0
	{
		brnzdec $m3, .LBB0_17
		f32v2mul $ap2, $ap2, $ap2
	}
.LBB0_18:
	{
		bri .LBB0_13
		f32v2add $ap0, $ap2, $ap1
	}
.LBB0_6:                                # %for.cond.preheader.i
	ld32 $m2, $m13, $m15, 5
	{
		shr $m2, $m2, 1
		zero	$ap0
	}
	cmpult $m3, $m0, $m2
	brz $m3, .LBB0_14
# %bb.7:                                # %for.body.lr.ph.i
	xnor $m3, $m0, $m15
	add $m2, $m3, $m2
	setzi $m3, 43691
	sort4x16lo $m4, $m2, $m15
	shr $m2, $m2, 16
	mul $m5, $m4, $m3
	mul $m3, $m2, $m3
	shr $m5, $m5, 16
	add $m3, $m3, $m5
	setzi $m5, 43690
	sort4x16lo $m6, $m3, $m15
	mul $m4, $m4, $m5
	shr $m3, $m3, 16
	mul $m2, $m2, $m5
	add $m4, $m4, $m6
	add $m2, $m2, $m3
	shr $m3, $m4, 16
	add $m2, $m2, $m3
	ld32 $m3, $m13, $m15, 0
	shl $m4, $m0, 2
	shr $m5, $m2, 2
	add $m2, $m3, $m4
	add $m3, $m5, 1
	setzi $m4, 1
	ld32step $a2, $m15, $m2+=, 6
	{
		cmpslt $m4, $m4, $m3
		f16v2tof32 $ap1, $a2
	}
	add $m3, $m3, -1
	brz $m4, .LBB0_10
# %bb.8:                                # %for.body.i
	add $m3, $m3, -1
.LBB0_9:                                # %for.body.i
                                        # =>This Inner Loop Header: Depth=1
	{
		ld32step $a4, $m15, $m2+=, 6
		f32v2add $ap0, $ap0, $ap1
	}
	{
		brnzdec $m3, .LBB0_9
		f16v2tof32 $ap1, $a4
	}
.LBB0_10:
	f32v2add $ap0, $ap0, $ap1
	st64 $ap0, $m1, $m15, $m0
	exitz $m15
.LBB0_2:                                # %for.body43.preheader.i
	cmpult $m2, $m0, $m2
	brz $m2, .LBB0_5
# %bb.3:                                # %for.body67.lr.ph.i
	{
		ld32 $m2, $m13, $m15, 1
		setzi $a1, 407485
	}
	{
		ld32 $m3, $m13, $m15, 2
		or $a3, $a1, 897581056
	}
	{
		ld32 $m4, $m13, $m15, 3
		mov	$a1, $a0
	}
	shl $m5, $m0, 2
	ld64 $ap2, $m1, $m15, 6
	{
		ld64 $ap3, $m1, $m15, 7
		f32v2add $ap2, $ap2, $apzero
	}
	{
		ld64 $ap3, $m1, $m15, 8
		f32v2add $ap2, $ap2, $ap3
	}
	{
		ld64 $ap3, $m1, $m15, 9
		f32v2add $ap2, $ap2, $ap3
	}
	{
		ld64 $ap3, $m1, $m15, 10
		f32v2add $ap2, $ap2, $ap3
	}
	{
		ld64 $ap3, $m1, $m15, 11
		f32v2add $ap2, $ap2, $ap3
	}
	f32v2add $ap2, $ap2, $ap3
	f32add $a4, $a4, $a5
	f32div $a2, $a4, $a2
	f32add $a2, $a2, $a3
	f32oorx $a2, $a2
	mov	$a3, $a2
	st64 $ap1, $m11, $m15, 0                # 8-byte Folded Spill
.LBB0_4:                                # %for.body67.i
                                        # =>This Inner Loop Header: Depth=1
	ld32 $m1, $m13, $m15, 0
	add $m0, $m0, 6
	ld32 $a4, $m1, $m5, 0
	{
		ld32 $a6, $m2, $m5, 0
		f16v2tof32 $ap2, $a4
	}
	{
		ld32 $a7, $m3, $m5, 0
		f32v2sub $ap2, $ap2, $ap0
	}
	ld64 $ap1, $m11, $m15, 0                # 8-byte Folded Reload
	f32v2mul $ap2, $ap1, $ap2
	mov	$ap1, $ap0
	f16v2tof32 $ap0, $a6
	f32v2mul $ap0, $ap2, $ap0
	f16v2tof32 $ap2, $a7
	f32v2add $ap0, $ap0, $ap2
	f32v2tof16 $a0, $ap0
	{
		st32step $a0, $m4, $m5+=, 6
		mov	$ap0, $ap1
	}
	ld32 $m1, $m13, $m15, 5
	shr $m1, $m1, 1
	cmpult $m1, $m0, $m1
	brnz $m1, .LBB0_4
.LBB0_5:                                # %_ZN12LayerNormF167computeEj.exit
	exitz $m15
.LBB0_12:
	zero	$ap0
.LBB0_13:                               # %for.cond.cleanup28.i
	add $m0, $m0, 6
.LBB0_14:                               # %cleanup86.sink.split.i
	st64 $ap0, $m1, $m15, $m0
	exitz $m15
.Lfunc_end0:
	.size	__runCodelet_LayerNormF16, .Lfunc_end0-__runCodelet_LayerNormF16
	.section	.stack_sizes,"o",@progbits,.text.__runCodelet_LayerNormF16
	.long	.Lfunc_begin0
	.byte	8
	.section	.text.__runCodelet_LayerNormF16,"ax",@progbits
                                        # -- End function
	.ident	"clang version 16.0.0 (git@github.com:Software-GCAI/llvm-project.git 6343a843cd5af31429c62a83b6ba249a74d36969)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
