Language
Bash script
Compiler
bash 4.3.48(1)-release
Options
$ bash prog.sh
.file ""
.intel_syntax noprefix
.section .text.unlikely._Z3fooIcEvPT_PKS0_S3_S3_m,"axG",@progbits,_Z3fooIcEvPT_PKS0_S3_S3_m,comdat
.LCOLDB11:
.section .text._Z3fooIcEvPT_PKS0_S3_S3_m,"axG",@progbits,_Z3fooIcEvPT_PKS0_S3_S3_m,comdat
.LHOTB11:
.p2align 4,,15
.weak _Z3fooIcEvPT_PKS0_S3_S3_m
.type _Z3fooIcEvPT_PKS0_S3_S3_m, @function
_Z3fooIcEvPT_PKS0_S3_S3_m:
.LFB1:
.cfi_startproc
test r8, r8
je .L12
lea r9, [r8-16]
lea r10, [r8-1]
push rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
shr r9, 4
add r9, 1
mov rax, r9
sal rax, 4
cmp r10, 14
jbe .L9
lea r11, [rdi+16]
movdqa xmm14, XMMWORD PTR .LC0[rip]
xor r10d, r10d
xor ebx, ebx
movdqa xmm13, XMMWORD PTR .LC1[rip]
movdqa xmm12, XMMWORD PTR .LC2[rip]
movdqa xmm11, XMMWORD PTR .LC3[rip]
movdqa xmm10, XMMWORD PTR .LC4[rip]
movdqa xmm9, XMMWORD PTR .LC5[rip]
movdqa xmm8, XMMWORD PTR .LC6[rip]
movdqa xmm7, XMMWORD PTR .LC7[rip]
movdqa xmm6, XMMWORD PTR .LC8[rip]
movdqa xmm5, XMMWORD PTR .LC9[rip]
.L5:
movdqa xmm0, xmm12
add rbx, 1
add r11, 48
movdqu xmm3, XMMWORD PTR [rsi+r10]
movdqu xmm1, XMMWORD PTR [rdx+r10]
movdqa xmm4, xmm3
movdqu xmm2, XMMWORD PTR [rcx+r10]
add r10, 16
punpcklbw xmm4, xmm1
movdqa xmm15, xmm2
pshufb xmm4, xmm14
pshufb xmm15, xmm13
pblendvb xmm4, xmm15, xmm0
movdqa xmm0, xmm1
movdqa xmm15, xmm2
movups XMMWORD PTR [r11-64], xmm4
movdqa xmm4, xmm3
pshufb xmm0, xmm10
pshufb xmm4, xmm11
pshufb xmm3, xmm7
pshufb xmm1, xmm6
por xmm4, xmm0
movdqa xmm0, xmm8
pshufb xmm15, xmm9
por xmm1, xmm3
pshufb xmm2, xmm5
pblendvb xmm4, xmm15, xmm0
movdqa xmm0, XMMWORD PTR .LC10[rip]
pblendvb xmm1, xmm2, xmm0
movups XMMWORD PTR [r11-48], xmm4
movups XMMWORD PTR [r11-32], xmm1
cmp r9, rbx
ja .L5
lea r9, [rax+rax*2]
add rsi, rax
add rdx, rax
add rcx, rax
add rdi, r9
cmp rax, r8
je .L1
.L3:
movzx r9d, BYTE PTR [rsi]
mov BYTE PTR [rdi], r9b
movzx r9d, BYTE PTR [rdx]
mov BYTE PTR [rdi+1], r9b
movzx r9d, BYTE PTR [rcx]
mov BYTE PTR [rdi+2], r9b
lea r9, [rax+1]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+1]
mov BYTE PTR [rdi+3], r9b
movzx r9d, BYTE PTR [rdx+1]
mov BYTE PTR [rdi+4], r9b
movzx r9d, BYTE PTR [rcx+1]
mov BYTE PTR [rdi+5], r9b
lea r9, [rax+2]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+2]
mov BYTE PTR [rdi+6], r9b
movzx r9d, BYTE PTR [rdx+2]
mov BYTE PTR [rdi+7], r9b
movzx r9d, BYTE PTR [rcx+2]
mov BYTE PTR [rdi+8], r9b
lea r9, [rax+3]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+3]
mov BYTE PTR [rdi+9], r9b
movzx r9d, BYTE PTR [rdx+3]
mov BYTE PTR [rdi+10], r9b
movzx r9d, BYTE PTR [rcx+3]
mov BYTE PTR [rdi+11], r9b
lea r9, [rax+4]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+4]
mov BYTE PTR [rdi+12], r9b
movzx r9d, BYTE PTR [rdx+4]
mov BYTE PTR [rdi+13], r9b
movzx r9d, BYTE PTR [rcx+4]
mov BYTE PTR [rdi+14], r9b
lea r9, [rax+5]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+5]
mov BYTE PTR [rdi+15], r9b
movzx r9d, BYTE PTR [rdx+5]
mov BYTE PTR [rdi+16], r9b
movzx r9d, BYTE PTR [rcx+5]
mov BYTE PTR [rdi+17], r9b
lea r9, [rax+6]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+6]
mov BYTE PTR [rdi+18], r9b
movzx r9d, BYTE PTR [rdx+6]
mov BYTE PTR [rdi+19], r9b
movzx r9d, BYTE PTR [rcx+6]
mov BYTE PTR [rdi+20], r9b
lea r9, [rax+7]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+7]
mov BYTE PTR [rdi+21], r9b
movzx r9d, BYTE PTR [rdx+7]
mov BYTE PTR [rdi+22], r9b
movzx r9d, BYTE PTR [rcx+7]
mov BYTE PTR [rdi+23], r9b
lea r9, [rax+8]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+8]
mov BYTE PTR [rdi+24], r9b
movzx r9d, BYTE PTR [rdx+8]
mov BYTE PTR [rdi+25], r9b
movzx r9d, BYTE PTR [rcx+8]
mov BYTE PTR [rdi+26], r9b
lea r9, [rax+9]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+9]
mov BYTE PTR [rdi+27], r9b
movzx r9d, BYTE PTR [rdx+9]
mov BYTE PTR [rdi+28], r9b
movzx r9d, BYTE PTR [rcx+9]
mov BYTE PTR [rdi+29], r9b
lea r9, [rax+10]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+10]
mov BYTE PTR [rdi+30], r9b
movzx r9d, BYTE PTR [rdx+10]
mov BYTE PTR [rdi+31], r9b
movzx r9d, BYTE PTR [rcx+10]
mov BYTE PTR [rdi+32], r9b
lea r9, [rax+11]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+11]
mov BYTE PTR [rdi+33], r9b
movzx r9d, BYTE PTR [rdx+11]
mov BYTE PTR [rdi+34], r9b
movzx r9d, BYTE PTR [rcx+11]
mov BYTE PTR [rdi+35], r9b
lea r9, [rax+12]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+12]
mov BYTE PTR [rdi+36], r9b
movzx r9d, BYTE PTR [rdx+12]
mov BYTE PTR [rdi+37], r9b
movzx r9d, BYTE PTR [rcx+12]
mov BYTE PTR [rdi+38], r9b
lea r9, [rax+13]
cmp r8, r9
jbe .L1
movzx r9d, BYTE PTR [rsi+13]
add rax, 14
cmp r8, rax
mov BYTE PTR [rdi+39], r9b
movzx r9d, BYTE PTR [rdx+13]
mov BYTE PTR [rdi+40], r9b
movzx r9d, BYTE PTR [rcx+13]
mov BYTE PTR [rdi+41], r9b
jbe .L1
movzx eax, BYTE PTR [rsi+14]
mov BYTE PTR [rdi+42], al
movzx eax, BYTE PTR [rdx+14]
mov BYTE PTR [rdi+43], al
movzx eax, BYTE PTR [rcx+14]
mov BYTE PTR [rdi+44], al
.L1:
pop rbx
.cfi_restore 3
.cfi_def_cfa_offset 8
.L12:
rep ret
.p2align 4,,10
.p2align 3
.L9:
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
xor eax, eax
jmp .L3
.cfi_endproc
.LFE1:
.size _Z3fooIcEvPT_PKS0_S3_S3_m, .-_Z3fooIcEvPT_PKS0_S3_S3_m
.section .text.unlikely._Z3fooIcEvPT_PKS0_S3_S3_m,"axG",@progbits,_Z3fooIcEvPT_PKS0_S3_S3_m,comdat
.LCOLDE11:
.section .text._Z3fooIcEvPT_PKS0_S3_S3_m,"axG",@progbits,_Z3fooIcEvPT_PKS0_S3_S3_m,comdat
.LHOTE11:
.section .rodata.cst16,"aM",@progbits,16
.align 16
.LC0:
.byte 0
.byte 1
.byte 0
.byte 2
.byte 3
.byte 0
.byte 4
.byte 5
.byte 0
.byte 6
.byte 7
.byte 0
.byte 8
.byte 9
.byte 0
.byte 10
.align 16
.LC1:
.byte 0
.byte 1
.byte 0
.byte 3
.byte 4
.byte 1
.byte 6
.byte 7
.byte 2
.byte 9
.byte 10
.byte 3
.byte 12
.byte 13
.byte 4
.byte 15
.align 16
.LC2:
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.align 16
.LC3:
.byte -128
.byte 0
.byte 6
.byte -128
.byte 0
.byte 7
.byte -128
.byte 0
.byte 8
.byte -128
.byte 0
.byte 9
.byte -128
.byte 0
.byte 10
.byte -128
.align 16
.LC4:
.byte 5
.byte -128
.byte -128
.byte 6
.byte -128
.byte -128
.byte 7
.byte -128
.byte -128
.byte 8
.byte -128
.byte -128
.byte 9
.byte -128
.byte -128
.byte 10
.align 16
.LC5:
.byte 0
.byte 5
.byte 2
.byte 3
.byte 6
.byte 5
.byte 6
.byte 7
.byte 8
.byte 9
.byte 8
.byte 11
.byte 12
.byte 9
.byte 14
.byte 15
.align 16
.LC6:
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.align 16
.LC7:
.byte 0
.byte 11
.byte -128
.byte 0
.byte 12
.byte -128
.byte 0
.byte 13
.byte -128
.byte 0
.byte 14
.byte -128
.byte 0
.byte 15
.byte -128
.byte 0
.align 16
.LC8:
.byte -128
.byte -128
.byte 11
.byte -128
.byte -128
.byte 12
.byte -128
.byte -128
.byte 13
.byte -128
.byte -128
.byte 14
.byte -128
.byte -128
.byte 15
.byte -128
.align 16
.LC9:
.byte 10
.byte 1
.byte 2
.byte 11
.byte 4
.byte 5
.byte 12
.byte 7
.byte 8
.byte 13
.byte 10
.byte 11
.byte 14
.byte 13
.byte 14
.byte 15
.align 16
.LC10:
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.byte 0
.byte 0
.byte -1
.ident "GCC: (GNU) 5.1.0"
.section .note.GNU-stack,"",@progbits
Exit Code:
0