Skip to content

Instantly share code, notes, and snippets.

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

  • Save SwapnilGaikwad/62ef6ef76e49843b7b7c8ccb9be4286b to your computer and use it in GitHub Desktop.

Select an option

Save SwapnilGaikwad/62ef6ef76e49843b7b7c8ccb9be4286b to your computer and use it in GitHub Desktop.
// store safe
G_M20155_IG01:
stp fp, lr, [sp,#-16]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.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 [0 bytes for IG07]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=60 bbWeight=0.50 PerfScore 7.25
G_M20155_IG04:
mov x0, xzr
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M20155_IG05:
ldp fp, lr, [sp],#16
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
G_M20155_IG06:
and x1, x1, #15
mov x4, #16
sub x4, x4, x1
sub x1, x2, #16
;; size=16 bbWeight=0.50 PerfScore 1.00
G_M20155_IG07:
lsl x2, x4, #1
ldr q16, [x0, x2]
add x2, x4, #8
lsl x5, x2, #1
ldr q17, [x0, x5]
orr v18.8h, v16.8h, v17.8h
umaxp v18.8h, v18.8h, v18.8h
umov x5, v18.d[0]
tst x5, #0xd1ffab1e
bne G_M20155_IG10
add x2, x3, x4
uzp1 v16.16b, v16.16b, v17.16b
st1 {v16.16b}, [x2]
add x4, x4, #16
cmp x4, x1
bls G_M20155_IG07
;; size=64 bbWeight=4 PerfScore 68.00
G_M20155_IG08:
mov x0, x4
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M20155_IG09:
ldp fp, lr, [sp],#16
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.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, x2
b G_M20155_IG08
;; size=36 bbWeight=0.50 PerfScore 3.75
; Total bytes of code 228, prolog size 8, PerfScore 113.30, instruction count 61, allocated bytes for code 228 (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