Skip to content

Instantly share code, notes, and snippets.

@SwapnilGaikwad
Created June 24, 2022 16:04
Show Gist options
  • Select an option

  • Save SwapnilGaikwad/9e669bff00bb3dfa53fb8e3553b2dd22 to your computer and use it in GitHub Desktop.

Select an option

Save SwapnilGaikwad/9e669bff00bb3dfa53fb8e3553b2dd22 to your computer and use it in GitHub Desktop.
// aligned
G_M20155_IG01:
stp fp, lr, [sp,#-32]!
str x19, [sp,#24]
mov fp, sp
;; size=12 bbWeight=1 PerfScore 2.50
G_M20155_IG02:
ld1 {v16.8h}, [x0]
umaxp v17.8h, v16.8h, v16.8h
umov x3, v17.d[0]
tst x3, #0xd1ffab1e
bne G_M20155_IG04
;; size=20 bbWeight=1 PerfScore 6.50
G_M20155_IG03:
mov x3, x1
uzp1 v16.16b, v16.16b, v16.16b
st1 {v16.8b}, [x3]
mov x4, #8
tbnz w1, #3, G_M20155_IG06
add x5, x0, #16
ld1 {v16.8h}, [x5]
umaxp v17.8h, v16.8h, v16.8h
umov x5, v17.d[0]
tst x5, #0xd1ffab1e
bne G_M20155_IG08
uzp1 v16.16b, v16.16b, v16.16b
add x4, x3, #8
st1 {v16.8b}, [x4]
b G_M20155_IG06
align [4 bytes for IG07]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=64 bbWeight=0.50 PerfScore 7.25
G_M20155_IG04:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M20155_IG05:
ldr x19, [sp,#24]
ldp fp, lr, [sp],#32
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M20155_IG06:
and x4, x1, #15
mov x5, #16
sub x4, x5, x4
sub x2, x2, #16
;; size=16 bbWeight=0.50 PerfScore 1.00
G_M20155_IG07:
lsl x5, x4, #1
ldr q16, [x0, x5]
add x5, x4, #8
lsl x6, x5, #1
ldr q17, [x0, x6]
orr v18.8h, v16.8h, v17.8h
umaxp v18.8h, v18.8h, v18.8h
umov x6, v18.d[0]
tst x6, #0xd1ffab1e
bne G_M20155_IG10
uzp1 v16.16b, v16.16b, v17.16b
add x5, x1, x4
tst w5, #15
bne G_M20155_IG11
str q16, [x5]
add x4, x4, #16
cmp x4, x2
bls G_M20155_IG07
;; size=72 bbWeight=4 PerfScore 74.00
G_M20155_IG08:
mov x0, x4
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M20155_IG09:
ldr x19, [sp,#24]
ldp fp, lr, [sp],#32
ret lr
;; size=12 bbWeight=0.50 PerfScore 2.00
G_M20155_IG10:
umaxp v17.8h, v16.8h, v16.8h
umov x0, v17.d[0]
tst x0, #0xd1ffab1e
bne G_M20155_IG08
add x4, x3, x4
uzp1 v16.16b, v16.16b, v16.16b
st1 {v16.8b}, [x4]
mov x4, x5
b G_M20155_IG08
;; size=36 bbWeight=0.50 PerfScore 3.75
G_M20155_IG11:
movz x0, #0xd1ffab1e
movk x0, #0xd1ffab1e LSL #16
movk x0, #0xd1ffab1e LSL #32
bl CORINFO_HELP_NEWSFAST
mov x19, x0
movz x1, #0xd1ffab1e // code for System.AccessViolationException:.ctor
movk x1, #0xd1ffab1e LSL #16
movk x1, #0xd1ffab1e LSL #32
ldr x1, [x1]
blr x1
mov x0, x19
bl CORINFO_HELP_THROW
brk_unix #0
;; size=52 bbWeight=0 PerfScore 0.00
; Total bytes of code 304, prolog size 12, PerfScore 129.90, instruction count 79, allocated bytes for code 304 (MethodHash=74c3b144) for method System.Text.Tests.Demo:NarrowUtf16ToAscii_Intrinsified(long,long,long):long
; ============================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment