; Assembly listing for method projs.PopCountTester:Custom_PopCount():int
; Emitting BLENDED_CODE for generic ARM64 CPU - Windows
; optimized code
; fp based frame
; partially interruptible
; Final local variable assignments
;
; V00 loc0 [V00,T04] ( 3, 2 ) long -> x0
; V01 loc1 [V01 ] ( 5, 3.50) ref -> [fp+0x28] must-init pinned class-hnd
; V02 loc2 [V02 ] ( 3, 3 ) simd8 -> [fp+0x18] HFA(double) do-not-enreg[XS] must-init addr-exposed ld-addr-op
;# V03 OutArgs [V03 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00] "OutgoingArgSpace"
; V04 tmp1 [V04,T00] ( 3, 6 ) ref -> x0 class-hnd "dup spill"
; V05 tmp2 [V05,T03] ( 2, 4 ) int -> x19 "non-inline candidate call"
; V06 tmp3 [V06,T05] ( 2, 2 ) long -> x0 "Cast away GC"
; V07 tmp4 [V07,T01] ( 2, 4 ) ref -> x1 "argument with side effect"
; V08 tmp5 [V08,T02] ( 2, 4 ) ref -> x20 "argument with side effect"
;
; Lcl frame size = 32
G_M31327_IG01:
A9BC7BFD stp fp, lr, [sp,#-64]!
A90353F3 stp x19, x20, [sp,#48]
910003FD mov fp, sp
F90017BF str xzr, [fp,#40] // [V01 loc1]
F9000FBF str xzr, [fp,#24] // [V02 loc2]
;; bbWeight=1 PerfScore 4.50
G_M31327_IG02:
D2933700 movz x0, #0x99b8
F2B657E0 movk x0, #0xb2bf LSL #16
F2CFFEE0 movk x0, #0x7ff7 LSL #32
52800021 mov w1, #1
97FF4D4F bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
D2933D80 movz x0, #0x99ec
F2B657E0 movk x0, #0xb2bf LSL #16
F2CFFEE0 movk x0, #0x7ff7 LSL #32
B9400000 ldr w0, [x0]
97FFB3FC bl System.BitConverter:GetBytes(int):System.Byte[]
F90017A0 str x0, [fp,#40] // [V01 loc1]
B4000080 cbz x0, G_M31327_IG04
;; bbWeight=1 PerfScore 10.50
G_M31327_IG03:
F94017A0 ldr x0, [fp,#40] // [V01 loc1]
B9400800 ldr w0, [x0,#8]
35000060 cbnz w0, G_M31327_IG05
;; bbWeight=0.50 PerfScore 3.00
G_M31327_IG04:
D2800000 mov x0, #0
14000007 b G_M31327_IG06
;; bbWeight=0.50 PerfScore 0.75
G_M31327_IG05:
F94017A0 ldr x0, [fp,#40] // [V01 loc1]
B9400800 ldr w0, [x0,#8]
7100001F cmp w0, #0
54000369 bls G_M31327_IG08
F94017A0 ldr x0, [fp,#40] // [V01 loc1]
91004000 add x0, x0, #16
;; bbWeight=0.50 PerfScore 4.50
G_M31327_IG06:
0C407000 ld1 {v0.8b}, [x0]
FD000FA0 str d0, [fp,#24] // [V02 loc2]
FD400FA0 ldr d0, [fp,#24] // [V02 loc2]
0E205800 cnt v0.8b, v0.8b
0E31B800 addv b0, v0.8b
52800000 mov w0, #0
97FFE550 bl System.Runtime.Intrinsics.Vector64:GetElement(System.Runtime.Intrinsics.Vector64`1[Byte],int):ubyte
2A0003F3 mov w19, w0
D2863000 movz x0, #0x3180
F2ADA800 movk x0, #0x6d40 LSL #16
F2C02D20 movk x0, #361 LSL #32
F9400014 ldr x20, [x0]
910063A0 add x0, fp, #24 // [V02 loc2]
97FFE7DB bl System.Runtime.Intrinsics.Vector64`1[Byte][System.Byte]:ToString():System.String:this
AA0003E1 mov x1, x0
AA1403E0 mov x0, x20
97FF522E bl System.String:Concat(System.String,System.String):System.String
97FFE5CD bl System.Console:WriteLine(System.String)
D2800000 mov x0, #0
F90017A0 str x0, [fp,#40] // [V01 loc1]
2A1303E0 mov w0, w19
;; bbWeight=1 PerfScore 21.00
G_M31327_IG07:
A94353F3 ldp x19, x20, [sp,#48]
A8C47BFD ldp fp, lr, [sp],#64
D65F03C0 ret lr
;; bbWeight=1 PerfScore 3.00
G_M31327_IG08:
97FF4D20 bl CORINFO_HELP_RNGCHKFAIL
D43E0000 bkpt
;; bbWeight=0 PerfScore 0.00
; Total bytes of code 216, prolog size 20, PerfScore 68.85, (MethodHash=48b785a0) for method projs.PopCountTester:Custom_PopCount():int
; ============================================================