Skip to content

Instantly share code, notes, and snippets.

@SwapnilGaikwad
Created July 21, 2024 13:28
Show Gist options
  • Save SwapnilGaikwad/c1699d6980959a888c67395c2dff65b3 to your computer and use it in GitHub Desktop.
Save SwapnilGaikwad/c1699d6980959a888c67395c2dff65b3 to your computer and use it in GitHub Desktop.
; Assembly listing for method JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long:RunBasicScenario_LoadFirstFaulting():this (Instrumented Tier0)
; Emitting BLENDED_CODE for generic ARM64 - Unix
; Instrumented Tier0 code
; fp based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x1B8] do-not-enreg[] this class-hnd <JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long>
; V01 loc0 [V01 ] ( 1, 1 ) simd16 -> [fp+0x1A0] HFA(simd16) do-not-enreg[S] must-init <System.Numerics.Vector`1[long]>
; V02 loc1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x190] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Numerics.Vector`1[ulong]>
; V03 loc2 [V03 ] ( 1, 1 ) byref -> [fp+0x188] do-not-enreg[] must-init
; V04 loc3 [V04 ] ( 1, 1 ) simd16 -> [fp+0x170] HFA(simd16) do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Numerics.Vector`1[long]>
; V05 loc4 [V05 ] ( 1, 1 ) long -> [fp+0x168] do-not-enreg[] must-init
; V06 loc5 [V06 ] ( 1, 1 ) int -> [fp+0x164] do-not-enreg[] must-init
; V07 loc6 [V07 ] ( 1, 1 ) int -> [fp+0x160] do-not-enreg[] must-init
; V08 loc7 [V08 ] ( 1, 1 ) simd16 -> [fp+0x150] HFA(simd16) do-not-enreg[S] must-init <System.Numerics.Vector`1[ulong]>
; V09 loc8 [V09 ] ( 1, 1 ) simd16 -> [fp+0x140] HFA(simd16) do-not-enreg[S] must-init <System.Numerics.Vector`1[ubyte]>
; V10 loc9 [V10 ] ( 1, 1 ) byref -> [fp+0x138] do-not-enreg[] must-init
; V11 loc10 [V11 ] ( 1, 1 ) byref -> [fp+0x130] do-not-enreg[] must-init
; V12 loc11 [V12 ] ( 1, 1 ) ref -> [fp+0x128] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object>
; V13 loc12 [V13 ] ( 1, 1 ) ref -> [fp+0x120] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object>
; V14 loc13 [V14 ] ( 1, 1 ) struct (16) [fp+0x110] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Span`1[ubyte]>
; V15 loc14 [V15 ] ( 1, 1 ) struct (40) [fp+0xE8] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V16 loc15 [V16 ] ( 1, 1 ) int -> [fp+0xE4] do-not-enreg[] must-init
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V18 tmp1 [V18 ] ( 1, 1 ) struct (16) [fp+0xD0] do-not-enreg[SR] multireg-ret must-init "Return value temp for multireg return" <System.Span`1[ubyte]>
; V19 tmp2 [V19 ] ( 1, 1 ) struct (16) [fp+0xC0] do-not-enreg[SR] multireg-ret must-init "Return value temp for multireg return" <System.Span`1[ubyte]>
; V20 tmp3 [V20 ] ( 1, 1 ) struct (16) [fp+0xB0] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
; V21 tmp4 [V21 ] ( 1, 1 ) struct (16) [fp+0xA0] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
; V22 tmp5 [V22 ] ( 1, 1 ) struct (16) [fp+0x90] do-not-enreg[SR] multireg-ret must-init "Return value temp for multireg return" <System.Span`1[ubyte]>
; V23 tmp6 [V23 ] ( 1, 1 ) int -> [fp+0x8C] do-not-enreg[] "non-inline candidate call"
; V24 tmp7 [V24 ] ( 1, 1 ) ref -> [fp+0x80] do-not-enreg[] must-init "handle histogram profile tmp"
; V25 tmp8 [V25 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] must-init "handle histogram profile tmp"
; V26 tmp9 [V26 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] must-init "handle histogram profile tmp"
; V27 tmp10 [V27 ] ( 1, 1 ) int -> [fp+0x68] do-not-enreg[X] addr-exposed "patchpoint counter"
; V28 tmp11 [V28 ] ( 1, 1 ) ref -> [fp+0x60] do-not-enreg[] must-init "argument with side effect"
; V29 tmp12 [V29 ] ( 1, 1 ) ref -> [fp+0x58] do-not-enreg[] must-init "argument with side effect"
; V30 tmp13 [V30 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] must-init "argument with side effect"
; V31 tmp14 [V31 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init "argument with side effect"
; V32 tmp15 [V32 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[] "Cast away GC"
; V33 tmp16 [V33 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init "argument with side effect"
; V34 tmp17 [V34 ] ( 1, 1 ) long -> [fp+0x30] do-not-enreg[] "Cast away GC"
; V35 tmp18 [V35 ] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[] "Cast away GC"
; V36 tmp19 [V36 ] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[] "argument with side effect"
; V37 tmp20 [V37 ] ( 1, 1 ) long -> [fp+0x18] do-not-enreg[] "argument with side effect"
; V38 tmp21 [V38 ] ( 1, 1 ) long -> [fp+0x10] do-not-enreg[] "argument with side effect"
;
; Lcl frame size = 432
G_M11398_IG01: ;; offset=0x0000
stp fp, lr, [sp, #-0x1C0]!
mov fp, sp
movi v16.16b, #0
add x9, fp, #120
add x10, fp, #368
stp q16, q16, [x9, #-0x40]
stp q16, q16, [x9, #-0x20]
bfm x9, xzr, #0, #5
dczva x9
add x9, x9, #64
cmp x9, x10
blo pc-16 (-4 instructions)
stp q16, q16, [x10]
stp q16, q16, [x10, #0x20]
str x0, [fp, #0x1B8] // [V00 this]
;; size=60 bbWeight=1 PerfScore 12.00
G_M11398_IG02: ;; offset=0x003C
movz x0, #0xE618
movk x0, #0x6039 LSL #16
movk x0, #0xFB86 LSL #32
movz x1, #0x6208 // code for TestLibrary.TestFramework:BeginScenario(System.String)
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
ptrue p0.d
mov z16.d, p0/z, #1
str q16, [fp, #0x1A0] // [V01 loc0]
ldr x0, [fp, #0x1B8] // [V00 this]
ldrsb wzr, [x0]
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
movz x1, #0x5518 // code for JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long+DataTable:get_inArray1Ptr():ulong:this
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
ptrue p0.d
mov z16.d, p0/z, #1
ptrue p0.d
cmpne p0.d, p0/z, z16.d, #0
ld1d { z16.d }, p0/z, [x0]
str q16, [fp, #0x190] // [V02 loc1]
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
ldr x0, [x0, #0x20]
str x0, [fp, #0x80] // [V24 tmp7]
ldr x0, [fp, #0x80] // [V24 tmp7]
movz x1, #0x70F8
movk x1, #0x1645 LSL #16
movk x1, #0xFB86 LSL #32
bl CORINFO_HELP_CLASSPROFILE32
ldr x0, [fp, #0x80] // [V24 tmp7]
str x0, [fp, #0x60] // [V28 tmp11]
ldr x0, [fp, #0x60] // [V28 tmp11]
ldr x1, [fp, #0x60] // [V28 tmp11]
ldr x1, [x1]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
blr x1
str x0, [fp, #0xD0] // [V18 tmp1]
str x1, [fp, #0xD8] // [V18 tmp1+0x08]
;; size=180 bbWeight=1 PerfScore 73.00
G_M11398_IG03: ;; offset=0x00F0
ldp x0, x1, [fp, #0xD0]
stp x0, x1, [fp, #0x110]
;; size=8 bbWeight=1 PerfScore 4.00
G_M11398_IG04: ;; offset=0x00F8
add x0, fp, #272 // [V14 loc13]
movz x1, #0x5560 // code for System.Span`1[ubyte]:GetPinnableReference():byref:this
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
str x0, [fp, #0x188] // [V03 loc2]
ldr x0, [fp, #0x1B8] // [V00 this]
ldrsb wzr, [x0]
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
movz x1, #0x5548 // code for JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long+DataTable:get_inArray3Ptr():ulong:this
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
ldr q16, [fp, #0x1A0] // [V01 loc0]
ptrue p0.d
cmpne p0.d, p0/z, z16.d, #0
ld1d { z16.d }, p0/z, [x0]
str q16, [fp, #0x170] // [V04 loc3]
mov x0, #15
str x0, [fp, #0x168] // [V05 loc4]
add x0, fp, #232 // [V15 loc14]
mov w1, #18
mov w2, #1
movz x3, #0x5458 // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
movk x3, #0x15E7 LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
add x0, fp, #232 // [V15 loc14]
movz x1, #0xE678
movk x1, #0x6039 LSL #16
movk x1, #0xFB86 LSL #32
movz x2, #0x5488 // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendLiteral(System.String):this
movk x2, #0x15E7 LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
ldr x0, [x0, #0x20]
str x0, [fp, #0x78] // [V25 tmp8]
ldr x0, [fp, #0x78] // [V25 tmp8]
movz x1, #0x7200
movk x1, #0x1645 LSL #16
movk x1, #0xFB86 LSL #32
bl CORINFO_HELP_CLASSPROFILE32
ldr x0, [fp, #0x78] // [V25 tmp8]
str x0, [fp, #0x58] // [V29 tmp12]
ldr x0, [fp, #0x58] // [V29 tmp12]
ldr x1, [fp, #0x58] // [V29 tmp12]
ldr x1, [x1]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
blr x1
str x0, [fp, #0xC0] // [V19 tmp2]
str x1, [fp, #0xC8] // [V19 tmp2+0x08]
;; size=236 bbWeight=1 PerfScore 82.00
G_M11398_IG05: ;; offset=0x01E4
ldp x0, x1, [fp, #0xC0]
stp x0, x1, [fp, #0x110]
;; size=8 bbWeight=1 PerfScore 4.00
G_M11398_IG06: ;; offset=0x01EC
add x0, fp, #232 // [V15 loc14]
ldr w1, [fp, #0x118] // [V14 loc13+0x08]
movz x2, #0x52C0 // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
movk x2, #0x15E7 LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
add x0, fp, #232 // [V15 loc14]
movz x1, #0xE478
movk x1, #0x6039 LSL #16
movk x1, #0xFB86 LSL #32
movz x2, #0x5488 // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendLiteral(System.String):this
movk x2, #0x15E7 LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
add x0, fp, #232 // [V15 loc14]
movz x1, #0x54A0 // code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
movz x1, #0x4318 // code for TestLibrary.TestFramework:LogInformation(System.String)
movk x1, #0x163F LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
add x1, fp, #368 // [V04 loc3]
movz x0, #0x39E8
movk x0, #0x15E9 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_BOX
str x0, [fp, #0x128] // [V12 loc11]
add x0, fp, #176 // [V20 tmp3]
add x2, fp, #296 // [V12 loc11]
movz x1, #0x6B58
movk x1, #0x1645 LSL #16
movk x1, #0xFB86 LSL #32
movz x3, #0x4798 // code for System.ReadOnlySpan`1[System.__Canon]:.ctor(byref):this
movk x3, #0x163F LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xB0] // [V20 tmp3]
ldr x2, [fp, #0xB8] // [V20 tmp3+0x08]
movz x0, #0x9A30
movk x0, #0x6039 LSL #16
movk x0, #0xFB86 LSL #32
movz x3, #0x47B0 // code for System.String:Join(System.String,System.ReadOnlySpan`1[System.Object]):System.String
movk x3, #0x163F LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
str x0, [fp, #0x50] // [V30 tmp13]
ldr x1, [fp, #0x50] // [V30 tmp13]
movz x0, #0xE6B0
movk x0, #0x6039 LSL #16
movk x0, #0xFB86 LSL #32
movz x2, #0xE478
movk x2, #0x6039 LSL #16
movk x2, #0xFB86 LSL #32
movz x3, #0xFE88 // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0x15E7 LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
movz x1, #0x4318 // code for TestLibrary.TestFramework:LogInformation(System.String)
movk x1, #0x163F LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
movn w0, #0
str w0, [fp, #0x164] // [V06 loc5]
str wzr, [fp, #0xE4] // [V16 loc15]
mov w0, #0x3E8
str w0, [fp, #0x68] // [V27 tmp10]
b G_M11398_IG12
;; size=308 bbWeight=1 PerfScore 72.00
G_M11398_IG07: ;; offset=0x0320
add x0, fp, #400 // [V02 loc1]
ldr w1, [fp, #0xE4] // [V16 loc15]
movz x2, #0x47C8 // code for System.Numerics.Vector`1[ulong]:get_Item(int):ulong:this
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
cbz x0, G_M11398_IG11
ldr w0, [fp, #0x164] // [V06 loc5]
cmn w0, #1
bne G_M11398_IG08
movz x0, #0x7308
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
ldr q0, [fp, #0x170] // [V04 loc3]
ldr w0, [fp, #0xE4] // [V16 loc15]
mov x1, xzr
movz x2, #0x4738 // code for System.Numerics.Vector:WithElement[long](System.Numerics.Vector`1[long],int,long):System.Numerics.Vector`1[long]
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
str q0, [fp, #0x170] // [V04 loc3]
ldr w0, [fp, #0xE4] // [V16 loc15]
str w0, [fp, #0x164] // [V06 loc5]
b G_M11398_IG11
;; size=108 bbWeight=1 PerfScore 30.00
G_M11398_IG08: ;; offset=0x038C
add x0, fp, #368 // [V04 loc3]
ldr w1, [fp, #0xE4] // [V16 loc15]
movz x2, #0x47E0 // code for System.Numerics.Vector`1[long]:get_Item(int):long:this
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
tbnz x0, #63, G_M11398_IG10
add x0, fp, #368 // [V04 loc3]
ldr w1, [fp, #0xE4] // [V16 loc15]
movz x2, #0x47E0 // code for System.Numerics.Vector`1[long]:get_Item(int):long:this
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
ldr x1, [fp, #0x168] // [V05 loc4]
cmp x0, x1
ble G_M11398_IG22
;; size=72 bbWeight=1 PerfScore 20.50
G_M11398_IG09: ;; offset=0x03D4
movz x0, #0x730C
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M11398_IG10: ;; offset=0x03E4
movz x0, #0x7310
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
ldr q0, [fp, #0x170] // [V04 loc3]
ldr w0, [fp, #0xE4] // [V16 loc15]
ldr x1, [fp, #0x168] // [V05 loc4]
movz x2, #0x4738 // code for System.Numerics.Vector:WithElement[long](System.Numerics.Vector`1[long],int,long):System.Numerics.Vector`1[long]
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
str q0, [fp, #0x170] // [V04 loc3]
;; size=52 bbWeight=1 PerfScore 15.00
G_M11398_IG11: ;; offset=0x0418
movz x0, #0x7314
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
ldr w0, [fp, #0xE4] // [V16 loc15]
add w0, w0, #1
str w0, [fp, #0xE4] // [V16 loc15]
;; size=28 bbWeight=1 PerfScore 6.00
G_M11398_IG12: ;; offset=0x0434
ldr w0, [fp, #0x68] // [V27 tmp10]
sub w0, w0, #1
str w0, [fp, #0x68] // [V27 tmp10]
ldr w0, [fp, #0x68] // [V27 tmp10]
cmp w0, #0
bgt G_M11398_IG14
;; size=24 bbWeight=1 PerfScore 7.00
G_M11398_IG13: ;; offset=0x044C
add x0, fp, #104 // [V27 tmp10]
mov w1, #303
bl CORINFO_HELP_PATCHPOINT
;; size=12 bbWeight=0.01 PerfScore 0.02
G_M11398_IG14: ;; offset=0x0458
ldr w0, [fp, #0xE4] // [V16 loc15]
cmp w0, #2
blt G_M11398_IG07
mov w0, #1
str w0, [fp, #0x160] // [V07 loc6]
ldr w0, [fp, #0x164] // [V06 loc5]
cmn w0, #1
beq G_M11398_IG16
ldr w0, [fp, #0x164] // [V06 loc5]
ldr w1, [fp, #0x160] // [V07 loc6]
cmp w0, w1
bne G_M11398_IG21
;; size=48 bbWeight=1 PerfScore 14.00
G_M11398_IG15: ;; offset=0x0488
movz x0, #0x7318
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M11398_IG16: ;; offset=0x0498
ldr q0, [fp, #0x190] // [V02 loc1]
mov w0, wzr
mov x1, #1
movz x2, #0x4750 // code for System.Numerics.Vector:WithElement[ulong](System.Numerics.Vector`1[ulong],int,ulong):System.Numerics.Vector`1[ulong]
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
str q0, [fp, #0x190] // [V02 loc1]
ldr q0, [fp, #0x170] // [V04 loc3]
mov w0, wzr
mov x1, xzr
movz x2, #0x4738 // code for System.Numerics.Vector:WithElement[long](System.Numerics.Vector`1[long],int,long):System.Numerics.Vector`1[long]
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
str q0, [fp, #0x170] // [V04 loc3]
;; size=72 bbWeight=1 PerfScore 19.00
G_M11398_IG17: ;; offset=0x04E0
movz x0, #0x731C
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
ldr q0, [fp, #0x190] // [V02 loc1]
ldr w0, [fp, #0x160] // [V07 loc6]
mov x1, #1
movz x2, #0x4750 // code for System.Numerics.Vector:WithElement[ulong](System.Numerics.Vector`1[ulong],int,ulong):System.Numerics.Vector`1[ulong]
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
str q0, [fp, #0x190] // [V02 loc1]
ldr q0, [fp, #0x170] // [V04 loc3]
ldr w0, [fp, #0x160] // [V07 loc6]
ldr x1, [fp, #0x168] // [V05 loc4]
movz x2, #0x4738 // code for System.Numerics.Vector:WithElement[long](System.Numerics.Vector`1[long],int,long):System.Numerics.Vector`1[long]
movk x2, #0x163F LSL #16
movk x2, #0xFB86 LSL #32
ldr x2, [x2]
blr x2
str q0, [fp, #0x170] // [V04 loc3]
add x1, fp, #368 // [V04 loc3]
movz x0, #0x39E8
movk x0, #0x15E9 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_BOX
str x0, [fp, #0x120] // [V13 loc12]
add x0, fp, #160 // [V21 tmp4]
add x2, fp, #288 // [V13 loc12]
movz x1, #0x6B58
movk x1, #0x1645 LSL #16
movk x1, #0xFB86 LSL #32
movz x3, #0x4798 // code for System.ReadOnlySpan`1[System.__Canon]:.ctor(byref):this
movk x3, #0x163F LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
ldr x1, [fp, #0xA0] // [V21 tmp4]
ldr x2, [fp, #0xA8] // [V21 tmp4+0x08]
movz x0, #0x9A30
movk x0, #0x6039 LSL #16
movk x0, #0xFB86 LSL #32
movz x3, #0x47B0 // code for System.String:Join(System.String,System.ReadOnlySpan`1[System.Object]):System.String
movk x3, #0x163F LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
str x0, [fp, #0x48] // [V31 tmp14]
ldr x1, [fp, #0x48] // [V31 tmp14]
movz x0, #0xE6B0
movk x0, #0x6039 LSL #16
movk x0, #0xFB86 LSL #32
movz x2, #0xE478
movk x2, #0x6039 LSL #16
movk x2, #0xFB86 LSL #32
movz x3, #0xFE88 // code for System.String:Concat(System.String,System.String,System.String):System.String
movk x3, #0x15E7 LSL #16
movk x3, #0xFB86 LSL #32
ldr x3, [x3]
blr x3
movz x1, #0x4318 // code for TestLibrary.TestFramework:LogInformation(System.String)
movk x1, #0x163F LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
ptrue p0.b
mov z16.b, p0/z, #1
ptrue p0.b
cmpne p0.b, p0/z, z16.b, #0
wrffr p0.b
ldr q16, [fp, #0x190] // [V02 loc1]
ptrue p0.d
cmpne p0.d, p0/z, z16.d, #0
ldr x0, [fp, #0x188] // [V03 loc2]
str x0, [fp, #0x40] // [V32 tmp15]
ldr x0, [fp, #0x40] // [V32 tmp15]
ldr q16, [fp, #0x170] // [V04 loc3]
ldff1b { z16.d }, p0/z, [x0, z16.d]
str q16, [fp, #0x150] // [V08 loc7]
rdffr p0.b
mov z16.b, p0/z, #1
str q16, [fp, #0x140] // [V09 loc8]
add x0, fp, #400 // [V02 loc1]
str x0, [fp, #0x138] // [V10 loc9]
add x0, fp, #368 // [V04 loc3]
str x0, [fp, #0x130] // [V11 loc10]
ldr x0, [fp, #0x1B8] // [V00 this]
ldrsb wzr, [x0]
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
movz x1, #0x6220 // code for JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long+DataTable:get_outArrayPtr():ulong:this
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
ldr q16, [fp, #0x150] // [V08 loc7]
str q16, [x0]
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
ldr x0, [x0, #0x20]
str x0, [fp, #0x70] // [V26 tmp9]
ldr x0, [fp, #0x70] // [V26 tmp9]
movz x1, #0x7320
movk x1, #0x1645 LSL #16
movk x1, #0xFB86 LSL #32
bl CORINFO_HELP_CLASSPROFILE32
ldr x0, [fp, #0x70] // [V26 tmp9]
str x0, [fp, #0x38] // [V33 tmp16]
ldr x0, [fp, #0x38] // [V33 tmp16]
ldr x1, [fp, #0x38] // [V33 tmp16]
ldr x1, [x1]
ldr x1, [x1, #0x48]
ldr x1, [x1, #0x38]
blr x1
str x0, [fp, #0x90] // [V22 tmp5]
str x1, [fp, #0x98] // [V22 tmp5+0x08]
;; size=468 bbWeight=1 PerfScore 153.00
G_M11398_IG18: ;; offset=0x06B4
ldp x0, x1, [fp, #0x90]
stp x0, x1, [fp, #0x110]
;; size=8 bbWeight=1 PerfScore 4.00
G_M11398_IG19: ;; offset=0x06BC
ldr w0, [fp, #0x118] // [V14 loc13+0x08]
str w0, [fp, #0x8C] // [V23 tmp6]
ldr x0, [fp, #0x138] // [V10 loc9]
str x0, [fp, #0x30] // [V34 tmp17]
ldr x0, [fp, #0x30] // [V34 tmp17]
str x0, [fp, #0x18] // [V37 tmp20]
ldr x0, [fp, #0x130] // [V11 loc10]
str x0, [fp, #0x28] // [V35 tmp18]
ldr x0, [fp, #0x28] // [V35 tmp18]
str x0, [fp, #0x10] // [V38 tmp21]
ldr x0, [fp, #0x1B8] // [V00 this]
ldrsb wzr, [x0]
ldr x0, [fp, #0x1B8] // [V00 this]
add x0, x0, #88
movz x1, #0x6220 // code for JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long+DataTable:get_outArrayPtr():ulong:this
movk x1, #0x15E7 LSL #16
movk x1, #0xFB86 LSL #32
ldr x1, [x1]
blr x1
str x0, [fp, #0x20] // [V36 tmp19]
ldr x5, [fp, #0x20] // [V36 tmp19]
ldr x1, [fp, #0x18] // [V37 tmp20]
ldr x4, [fp, #0x10] // [V38 tmp21]
ldr w3, [fp, #0x8C] // [V23 tmp6]
ldr x2, [fp, #0x188] // [V03 loc2]
ldr x0, [fp, #0x1B8] // [V00 this]
ldr q0, [fp, #0x140] // [V09 loc8]
movz x6, #0xE618
movk x6, #0x6039 LSL #16
movk x6, #0xFB86 LSL #32
movz x7, #0x47F8 // code for JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long:ValidateFirstFaultingResult(ulong,byref,int,ulong,ulong,System.Numerics.Vector`1[ubyte],System.String):this
movk x7, #0x163F LSL #16
movk x7, #0xFB86 LSL #32
ldr x7, [x7]
blr x7
;; size=140 bbWeight=1 PerfScore 50.00
G_M11398_IG20: ;; offset=0x0748
ldp fp, lr, [sp], #0x1C0
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
G_M11398_IG21: ;; offset=0x0750
movz x0, #0x7428
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
b G_M11398_IG17
;; size=20 bbWeight=0.50 PerfScore 1.75
G_M11398_IG22: ;; offset=0x0764
movz x0, #0x742C
movk x0, #0x1645 LSL #16
movk x0, #0xFB86 LSL #32
bl CORINFO_HELP_COUNTPROFILE32
b G_M11398_IG11
;; size=20 bbWeight=0.50 PerfScore 1.75
; Total bytes of code 1912, prolog size 56, PerfScore 573.52, instruction count 478, allocated bytes for code 1912 (MethodHash=1b84d379) for method JIT.HardwareIntrinsics.Arm._Sve.SveGatherVectorIndices__Sve_GatherVectorByteZeroExtendFirstFaulting_Indices_ulong_long:RunBasicScenario_LoadFirstFaulting():this (Instrumented Tier0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment