Project

General

Profile

Bug #19875 » rb_str_count.S

nobu (Nobuyoshi Nakada), 09/15/2023 06:09 AM

 
.LBE33630:
.LBE33629:
.loc 1 8458 13 is_stmt 1 view .LVU26811
.loc 1 8458 22 view .LVU26812
cmpq %rax, %rcx # _98, SR.3112
jnb .L4610 #,
leaq -1(%rdx), %r8 #, tmp371
movq %rcx, %rdi # SR.3112, ivtmp.4747
cmpq $14, %r8 #, tmp371
jbe .L4611 #,
movd %esi, %xmm0 # _9, tmp375
pxor %xmm7, %xmm7 # tmp384
pxor %xmm4, %xmm4 # tmp397
movq %rdx, %r8 # _93, tmp380
movdqa .LC14(%rip), %xmm6 #, tmp720
punpcklbw %xmm0, %xmm0 # tmp375, tmp376
andq $-16, %r8 #, tmp380
punpcklwd %xmm0, %xmm0 # tmp376, tmp377
addq %rcx, %r8 # SR.3112, _228
pshufd $0, %xmm0, %xmm3 #, tmp377, vect_cst__316
movaps %xmm6, (%rsp) # tmp720, %sfp
# string.c:8453: unsigned char c = rb_enc_codepoint_len(ptstr, ptstr+1, &clen, enc);
.loc 1 8453 27 is_stmt 0 view .LVU26813
pxor %xmm0, %xmm0 # vect_n_194.4725
pxor %xmm6, %xmm6 # tmp388
.LVL6450:
.L4540:
.loc 1 8459 17 is_stmt 1 view .LVU26814
.loc 1 8459 48 view .LVU26815
movdqu (%rdi), %xmm2 # MEM <vector(16) unsigned char> [(unsigned char *)_95], tmp383
addq $16, %rdi #, ivtmp.4747
pcmpeqb %xmm3, %xmm2 # vect_cst__316, tmp383
pand (%rsp), %xmm2 # %sfp, vect_patt_242.4721
movdqa %xmm2, %xmm1 # vect_patt_242.4721, tmp385
punpckhbw %xmm7, %xmm2 # tmp384, tmp387
punpcklbw %xmm7, %xmm1 # tmp384, tmp385
movdqa %xmm2, %xmm5 # tmp387, tmp393
punpckhwd %xmm6, %xmm2 # tmp388, tmp395
movdqa %xmm1, %xmm8 # tmp385, tmp389
punpckhwd %xmm6, %xmm1 # tmp388, tmp391
punpcklwd %xmm6, %xmm5 # tmp388, tmp393
movdqa %xmm1, %xmm9 # tmp391, tmp398
punpcklwd %xmm6, %xmm8 # tmp388, tmp389
punpckhdq %xmm4, %xmm1 # tmp397, tmp401
punpckldq %xmm4, %xmm9 # tmp397, tmp398
paddq %xmm9, %xmm1 # tmp398, tmp402
movdqa %xmm8, %xmm9 # tmp389, tmp405
punpckhdq %xmm4, %xmm8 # tmp397, tmp408
punpckldq %xmm4, %xmm9 # tmp397, tmp405
paddq %xmm9, %xmm8 # tmp405, tmp409
paddq %xmm8, %xmm1 # tmp409, tmp410
movdqa %xmm5, %xmm8 # tmp393, tmp413
punpckhdq %xmm4, %xmm5 # tmp397, tmp416
punpckldq %xmm4, %xmm8 # tmp397, tmp413
paddq %xmm8, %xmm5 # tmp413, tmp417
movdqa %xmm2, %xmm8 # tmp395, tmp420
punpckhdq %xmm4, %xmm2 # tmp397, tmp425
punpckldq %xmm4, %xmm8 # tmp397, tmp420
paddq %xmm2, %xmm0 # tmp425, tmp426
paddq %xmm8, %xmm5 # tmp420, tmp421
paddq %xmm5, %xmm1 # tmp421, tmp422
paddq %xmm1, %xmm0 # tmp422, vect_n_194.4725
.loc 1 8458 22 view .LVU26816
cmpq %rdi, %r8 # ivtmp.4747, _228
jne .L4540 #,
movdqa %xmm0, %xmm1 # vect_n_194.4725, tmp428
movq %rdx, %r8 # _93, niters_vector_mult_vf.4715
psrldq $8, %xmm1 #, tmp428
andq $-16, %r8 #, niters_vector_mult_vf.4715
paddq %xmm1, %xmm0 # tmp428, tmp429
addq %r8, %rcx # niters_vector_mult_vf.4715, SR.3112
.LVL6451:
.loc 1 8458 22 is_stmt 0 view .LVU26817
movq %xmm0, %rdi # tmp429, stmp_n_194.4726
cmpq %r8, %rdx # niters_vector_mult_vf.4715, _93
je .L4541 #,
.L4539:
.LVL6452:
.loc 1 8459 17 is_stmt 1 view .LVU26818
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26819
xorl %r8d, %r8d # tmp722
cmpb %sil, (%rcx) # _9, MEM[(unsigned char *)s_111]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26820
leaq 1(%rcx), %rdx #, s
.LVL6453:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26821
sete %r8b #, tmp722
addq %r8, %rdi # tmp722, stmp_n_194.4726
.LVL6454:
.loc 1 8458 22 is_stmt 1 view .LVU26822
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26823
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26824
xorl %r8d, %r8d # tmp724
cmpb %sil, 1(%rcx) # _9, MEM[(unsigned char *)s_111 + 1B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26825
leaq 2(%rcx), %rdx #, s
.LVL6455:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26826
sete %r8b #, tmp724
addq %r8, %rdi # tmp724, stmp_n_194.4726
.LVL6456:
.loc 1 8458 22 is_stmt 1 view .LVU26827
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26828
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26829
xorl %r8d, %r8d # tmp726
cmpb %sil, 2(%rcx) # _9, MEM[(unsigned char *)s_111 + 2B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26830
leaq 3(%rcx), %rdx #, s
.LVL6457:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26831
sete %r8b #, tmp726
addq %r8, %rdi # tmp726, stmp_n_194.4726
.LVL6458:
.loc 1 8458 22 is_stmt 1 view .LVU26832
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26833
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26834
xorl %r8d, %r8d # tmp728
cmpb %sil, 3(%rcx) # _9, MEM[(unsigned char *)s_111 + 3B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26835
leaq 4(%rcx), %rdx #, s
.LVL6459:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26836
sete %r8b #, tmp728
addq %r8, %rdi # tmp728, stmp_n_194.4726
.LVL6460:
.loc 1 8458 22 is_stmt 1 view .LVU26837
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26838
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26839
xorl %r8d, %r8d # tmp730
cmpb %sil, 4(%rcx) # _9, MEM[(unsigned char *)s_111 + 4B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26840
leaq 5(%rcx), %rdx #, s
.LVL6461:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26841
sete %r8b #, tmp730
addq %r8, %rdi # tmp730, stmp_n_194.4726
.LVL6462:
.loc 1 8458 22 is_stmt 1 view .LVU26842
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26843
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26844
xorl %r8d, %r8d # tmp732
cmpb %sil, 5(%rcx) # _9, MEM[(unsigned char *)s_111 + 5B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26845
leaq 6(%rcx), %rdx #, s
.LVL6463:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26846
sete %r8b #, tmp732
addq %r8, %rdi # tmp732, stmp_n_194.4726
.LVL6464:
.loc 1 8458 22 is_stmt 1 view .LVU26847
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26848
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26849
xorl %r8d, %r8d # tmp734
cmpb %sil, 6(%rcx) # _9, MEM[(unsigned char *)s_111 + 6B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26850
leaq 7(%rcx), %rdx #, s
.LVL6465:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26851
sete %r8b #, tmp734
addq %r8, %rdi # tmp734, stmp_n_194.4726
.LVL6466:
.loc 1 8458 22 is_stmt 1 view .LVU26852
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26853
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26854
xorl %r8d, %r8d # tmp736
cmpb %sil, 7(%rcx) # _9, MEM[(unsigned char *)s_111 + 7B]
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 view .LVU26855
leaq 8(%rcx), %rdx #, s
.LVL6467:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 view .LVU26856
sete %r8b #, tmp736
addq %r8, %rdi # tmp736, stmp_n_194.4726
.LVL6468:
.loc 1 8458 22 is_stmt 1 view .LVU26857
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26858
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 is_stmt 0 view .LVU26859
leaq 9(%rcx), %rdx #, s
.LVL6469:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 view .LVU26860
cmpb 8(%rcx), %sil # MEM[(unsigned char *)s_111 + 8B], _9
jne .L4550 #,
.loc 1 8459 48 is_stmt 1 view .LVU26861
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26862
addq $1, %rdi #, stmp_n_194.4726
.LVL6470:
.L4550:
.loc 1 8458 22 is_stmt 1 view .LVU26863
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26864
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 is_stmt 0 view .LVU26865
leaq 10(%rcx), %rdx #, s
.LVL6471:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 view .LVU26866
cmpb 9(%rcx), %sil # MEM[(unsigned char *)s_111 + 9B], _9
jne .L4551 #,
.loc 1 8459 48 is_stmt 1 view .LVU26867
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26868
addq $1, %rdi #, stmp_n_194.4726
.LVL6472:
.L4551:
.loc 1 8458 22 is_stmt 1 view .LVU26869
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26870
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 is_stmt 0 view .LVU26871
leaq 11(%rcx), %rdx #, s
.LVL6473:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 view .LVU26872
cmpb 10(%rcx), %sil # MEM[(unsigned char *)s_111 + 10B], _9
jne .L4552 #,
.loc 1 8459 48 is_stmt 1 view .LVU26873
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26874
addq $1, %rdi #, stmp_n_194.4726
.LVL6474:
.L4552:
.loc 1 8458 22 is_stmt 1 view .LVU26875
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26876
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 is_stmt 0 view .LVU26877
leaq 12(%rcx), %rdx #, s
.LVL6475:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 view .LVU26878
cmpb 11(%rcx), %sil # MEM[(unsigned char *)s_111 + 11B], _9
jne .L4553 #,
.loc 1 8459 48 is_stmt 1 view .LVU26879
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26880
addq $1, %rdi #, stmp_n_194.4726
.LVL6476:
.L4553:
.loc 1 8458 22 is_stmt 1 view .LVU26881
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26882
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 is_stmt 0 view .LVU26883
leaq 13(%rcx), %rdx #, s
.LVL6477:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 view .LVU26884
cmpb 12(%rcx), %sil # MEM[(unsigned char *)s_111 + 12B], _9
jne .L4554 #,
.loc 1 8459 48 is_stmt 1 view .LVU26885
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26886
addq $1, %rdi #, stmp_n_194.4726
.LVL6478:
.L4554:
.loc 1 8458 22 is_stmt 1 view .LVU26887
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26888
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 22 is_stmt 0 view .LVU26889
leaq 14(%rcx), %rdx #, s
.LVL6479:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 view .LVU26890
cmpb 13(%rcx), %sil # MEM[(unsigned char *)s_111 + 13B], _9
jne .L4555 #,
.loc 1 8459 48 is_stmt 1 view .LVU26891
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26892
addq $1, %rdi #, stmp_n_194.4726
.LVL6480:
.L4555:
.loc 1 8458 22 is_stmt 1 view .LVU26893
cmpq %rdx, %rax # s, _98
jbe .L4541 #,
.loc 1 8459 17 view .LVU26894
.LVL6481:
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 20 is_stmt 0 view .LVU26895
cmpb 14(%rcx), %sil # MEM[(unsigned char *)s_111 + 14B], _9
jne .L4541 #,
.loc 1 8459 48 is_stmt 1 view .LVU26896
# string.c:8459: if (*(unsigned char*)s++ == c) n++;
.loc 1 8459 49 is_stmt 0 view .LVU26897
addq $1, %rdi #, stmp_n_194.4726
.LVL6482:
.L4541:
.loc 1 8461 13 is_stmt 1 view .LVU26898
(4-4/5)