// File: /workspace/github_c_makefile_star2_O0/zpole[P]IICV/vl/imopv.c
// Function: vl_imsmooth_f
VL_EXPORT void
VL_XCAT(vl_imsmooth_, SFX)
(T * smoothed, vl_size smoothedStride,
 T const *image, vl_size width, vl_size height, vl_size stride,
 double sigmax, double sigmay)
{
  T *filterx, *filtery, *buffer ;
  vl_size sizex, sizey ;

  filterx = VL_XCAT(_vl_new_gaussian_fitler_,SFX)(&sizex,sigmax) ;
  if (sigmax == sigmay) {
    filtery = filterx ;
    sizey = sizex ;
  } else {
    filtery = VL_XCAT(_vl_new_gaussian_fitler_,SFX)(&sizey,sigmay) ;
  }
  buffer = vl_malloc(width*height*sizeof(T)) ;

  VL_XCAT(vl_imconvcol_v,SFX) (buffer, height,
                               image, width, height, stride,
                               filtery,
                               -((signed)sizey-1)/2, ((signed)sizey-1)/2,
                               1, VL_PAD_BY_CONTINUITY | VL_TRANSPOSE) ;

  VL_XCAT(vl_imconvcol_v,SFX) (smoothed, smoothedStride,
                               buffer, height, width, height,
                               filterx,
                               -((signed)sizex-1)/2, ((signed)sizex-1)/2,
                               1, VL_PAD_BY_CONTINUITY | VL_TRANSPOSE) ;

  vl_free(buffer) ;
  vl_free(filterx) ;
  if (sigmax != sigmay) {
    vl_free(filtery) ;
  }
}

// Assembly:
pushq %rbx
subq $0xa0, %rsp
movq %rdi, 0x98(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdx, 0x88(%rsp)
movq %rcx, 0x80(%rsp)
movq %r8, 0x78(%rsp)
movq %r9, 0x70(%rsp)
movsd %xmm0, 0x68(%rsp)
movsd %xmm1, 0x60(%rsp)
movsd 0x68(%rsp), %xmm0
leaq 0x40(%rsp), %rdi
callq 0x268a0
movq %rax, 0x58(%rsp)
movsd 0x68(%rsp), %xmm0
ucomisd 0x60(%rsp), %xmm0
jne 0x26729
jp 0x26729
movq 0x58(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x38(%rsp)
jmp 0x2673e
movsd 0x60(%rsp), %xmm0
leaq 0x38(%rsp), %rdi
callq 0x268a0
movq %rax, 0x50(%rsp)
movq 0x80(%rsp), %rdi
imulq 0x78(%rsp), %rdi
shlq $0x2, %rdi
callq 0x9660
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x88(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x80(%rsp), %rcx
movq 0x78(%rsp), %r8
movq 0x70(%rsp), %r9
movq 0x50(%rsp), %r11
movq 0x38(%rsp), %rax
movl %eax, %edx
subl $0x1, %edx
xorl %eax, %eax
subl %edx, %eax
movl $0x2, %r10d
cltd
idivl %r10d
movslq %eax, %r10
movq 0x38(%rsp), %rax
subl $0x1, %eax
movl $0x2, %ebx
cltd
idivl %ebx
movq 0x28(%rsp), %rdx
cltq
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movl $0x1, 0x18(%rsp)
movl $0x5, 0x20(%rsp)
callq 0x92f0
movq 0x98(%rsp), %rdi
movq 0x90(%rsp), %rsi
movq 0x48(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %r8
movq 0x78(%rsp), %r9
movq 0x58(%rsp), %r11
movq 0x40(%rsp), %rax
movl %eax, %edx
subl $0x1, %edx
xorl %eax, %eax
subl %edx, %eax
movl $0x2, %r10d
cltd
idivl %r10d
movslq %eax, %r10
movq 0x40(%rsp), %rax
subl $0x1, %eax
movl $0x2, %ebx
cltd
idivl %ebx
movq 0x30(%rsp), %rdx
cltq
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movl $0x1, 0x18(%rsp)
movl $0x5, 0x20(%rsp)
callq 0x92f0
movq 0x48(%rsp), %rdi
callq 0x9620
movq 0x58(%rsp), %rdi
callq 0x9620
movsd 0x68(%rsp), %xmm0
ucomisd 0x60(%rsp), %xmm0
jne 0x26889
jp 0x26889
jmp 0x26893
movq 0x50(%rsp), %rdi
callq 0x9620
addq $0xa0, %rsp
popq %rbx
retq
nopl (%rax)