; Listing generated by Microsoft (R) Optimizing Compiler Version 19.15.26504.0 

	TTL	C:\Source\compiler-explorer\test\cases\arm-moose-example.cpp
	THUMB
	.drectve
	DCB	"-defaultlib:LIBCMT "
	DCB	"-defaultlib:OLDNAMES "

	EXPORT	|moose|
;	COMDAT .pdata
.pdata	SEGMENT
|$pdata1$moose| DCD imagerel |moose|
	DCD	0xfd1160d5
; Function compile flags: /Ogtpy
;	COMDAT moose
.text$mn	SEGMENT

|moose|	PROC
; File c:\source\compiler-explorer\test\cases\arm-moose-example.cpp
; Line 9
	push        {r3-r5,lr}
|$M22|
	mov         r5,r0
; Line 10
	movs        r0,#1
	movs        r4,#0
	vdup.32     q10,r5
; Line 12
	cmp         r1,#0
	ble         |$LN18@moose|
	cmp         r1,#8
	bcc         |$LN11@moose|
; Line 10
	asrs        r3,r1,#2
	add         r3,r1,r3,lsr #0x1D
	asrs        r3,r3,#3
	sub         r3,r1,r3,lsl #3
	vmov.i64    q8,#0
	subs        r3,r1,r3
	vmov        q9,q8
	vmul.i32    q10,q10,q10
|$LL4@moose|
; Line 12
	adds        r4,r4,#8
	cmp         r4,r3
; Line 13
	vadd.i32    q8,q10,q8
	vadd.i32    q9,q10,q9
	blt         |$LL4@moose|
; Line 10
	vadd.i32    q8,q9,q8
	vmov.32     r2,d17[1]
	vmov.32     r3,d17[0]
	add         r2,r2,r3
	vmov.32     r3,d16[1]
	add         r2,r2,r3
	vmov.32     r3,d16[0]
	add         r3,r3,r2
	adds        r0,r3,#1
|$LN11@moose|
; Line 12
	cmp         r4,r1
	bge         |$LN17@moose|
	subs        r3,r1,r4
	mul         r3,r3,r5
	mla         r0,r3,r5,r0
|$LN17@moose|
|$M20|
; Line 16
	pop         {r3-r5,pc}
|$LN18@moose|
|$M21|
	pop         {r3-r5,pc}
|$M23|

	ENDP  ; |moose|

; Function compile flags: /Ogtpy
;	COMDAT thing
.text$mn	SEGMENT

|thing|	PROC
; File c:\source\compiler-explorer\test\cases\arm-moose-example.cpp
; Line 7
	mul         r0,r0,r0
|$M4|
	bx          lr

	ENDP  ; |thing|

	END
