1 .text
2 .file "bitmap_bmi2.c"
3 .section .rodata.cst16,"aM",@progbits,16
4 .p2align 4 // -- Begin function levels_to_bitmap_neon
5.LCPI1_0:
6 .xword 0 // 0x0
7 .xword 1 // 0x1
8 .text
9 .globl levels_to_bitmap_neon
10 .p2align 2
11 .type levels_to_bitmap_neon,@function
12levels_to_bitmap_neon: // @levels_to_bitmap_neon
13// %bb.0:
14 stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
15 cmp w1, #1 // =1
16 mov x29, sp
17 b.lt .LBB1_3
18// %bb.1:
19 cmp w1, #3 // =3
20 mov w9, w1
21 b.hi .LBB1_4
22// %bb.2:
23 mov x10, xzr
24 mov x8, xzr
25 b .LBB1_7
26.LBB1_3:
27 mov x8, xzr
28 b .LBB1_8
29.LBB1_4:
30 adrp x11, .LCPI1_0
31 ldr q1, [x11, :lo12:.LCPI1_0]
32 mov w11, #2
33 dup v3.2s, w2
34 dup v2.2d, x11
35 mov w11, #1
36 and x10, x9, #0xfffffffc
37 shl v4.2s, v3.2s, #16
38 dup v3.2d, x11
39 mov w11, #4
40 add x8, x0, #4 // =4
41 movi v0.2d, #0000000000000000
42 sshr v4.2s, v4.2s, #16
43 dup v5.2d, x11
44 mov x11, x10
45 movi v6.2d, #0000000000000000
46.LBB1_5: // =>This Inner Loop Header: Depth=1
47 ldursh w12, [x8, #-4]
48 ldrsh w13, [x8]
49 ldursh w14, [x8, #-2]
50 add v17.2d, v1.2d, v2.2d
51 fmov s7, w12
52 ldrsh w12, [x8, #2]
53 fmov s16, w13
54 mov v7.s[1], w14
55 cmgt v7.2s, v7.2s, v4.2s
56 mov v16.s[1], w12
57 cmgt v16.2s, v16.2s, v4.2s
58 ushll v7.2d, v7.2s, #0
59 ushll v16.2d, v16.2s, #0
60 and v7.16b, v7.16b, v3.16b
61 and v16.16b, v16.16b, v3.16b
62 ushl v7.2d, v7.2d, v1.2d
63 ushl v16.2d, v16.2d, v17.2d
64 subs x11, x11, #4 // =4
65 add v1.2d, v1.2d, v5.2d
66 orr v0.16b, v7.16b, v0.16b
67 orr v6.16b, v16.16b, v6.16b
68 add x8, x8, #8 // =8
69 b.ne .LBB1_5
70// %bb.6:
71 orr v0.16b, v6.16b, v0.16b
72 dup v1.2d, v0.d[1]
73 orr v0.16b, v0.16b, v1.16b
74 cmp x10, x9
75 fmov x8, d0
76 b.eq .LBB1_8
77.LBB1_7: // =>This Inner Loop Header: Depth=1
78 ldrsh w11, [x0, x10, lsl #1]
79 cmp w11, w2, sxth
80 cset w11, gt
81 lsl x11, x11, x10
82 add x10, x10, #1 // =1
83 cmp x9, x10
84 orr x8, x11, x8
85 b.ne .LBB1_7
86.LBB1_8:
87 mov x0, x8
88 ldp x29, x30, [sp], #16 // 16-byte Folded Reload
89 ret
90.Lfunc_end1:
91 .size levels_to_bitmap_neon, .Lfunc_end1-levels_to_bitmap_neon
92 // -- End function
93 .ident "clang version 10.0.0-4ubuntu1 "
94 .section ".note.GNU-stack","",@progbits
95 .addrsig
View as plain text