Language
Bash script
Compiler
bash 4.3.48(1)-release
Options
$ bash prog.sh
.file ""
.section .text._Z3fooIcEvPT_PKS0_S3_m,"axG",@progbits,_Z3fooIcEvPT_PKS0_S3_m,comdat
.p2align 4,,15
.weak _Z3fooIcEvPT_PKS0_S3_m
.type _Z3fooIcEvPT_PKS0_S3_m, @function
_Z3fooIcEvPT_PKS0_S3_m:
.LFB1:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
testq %rcx, %rcx
je .L7
cmpq $15, %rcx
jbe .L3
testb $15, %dil
jne .L3
movq %rcx, %r10
shrq $4, %r10
movq %r10, %r8
salq $4, %r8
testq %r8, %r8
je .L8
xorl %eax, %eax
xorl %r9d, %r9d
.p2align 4,,10
.p2align 3
.L5:
movdqu (%rsi,%rax), %xmm1
addq $1, %r9
movdqu (%rdx,%rax), %xmm0
movdqa %xmm1, %xmm2
punpckhbw %xmm0, %xmm1
punpcklbw %xmm0, %xmm2
movdqa %xmm1, 16(%rdi,%rax,2)
movdqa %xmm2, (%rdi,%rax,2)
addq $16, %rax
cmpq %r9, %r10
ja .L5
addq %r8, %rsi
addq %r8, %rdx
cmpq %r8, %rcx
leaq (%rdi,%r8,2), %rdi
je .L7
.p2align 4,,10
.p2align 3
.L8:
movzbl (%rsi), %eax
addq $1, %r8
addq $1, %rsi
movb %al, (%rdi)
movzbl (%rdx), %eax
addq $1, %rdx
movb %al, 1(%rdi)
addq $2, %rdi
cmpq %r8, %rcx
ja .L8
rep
ret
.p2align 4,,10
.p2align 3
.L3:
xorl %eax, %eax
.p2align 4,,10
.p2align 3
.L6:
movzbl (%rsi,%rax), %r8d
movb %r8b, (%rdi,%rax,2)
movzbl (%rdx,%rax), %r8d
movb %r8b, 1(%rdi,%rax,2)
addq $1, %rax
cmpq %rax, %rcx
ja .L6
.L7:
rep
ret
.cfi_endproc
.LFE1:
.size _Z3fooIcEvPT_PKS0_S3_m, .-_Z3fooIcEvPT_PKS0_S3_m
.ident "GCC: (GNU) 4.4.7"
.section .note.GNU-stack,"",@progbits
Exit Code:
0