// File: /workspace/github_c_makefile_star2_O1/zpole[P]IICV/src/test_mathop.c
// Function: main
int
main (int argc VL_UNUSED, char** argv VL_UNUSED)
{
  int error = 0 ;

  /* -----------------------------------------------------------------
   *                                                  vl_fast_resqrt_*
   * -------------------------------------------------------------- */

  VL_PRINTF ("%20s %10s %10s %10s\n", "func", "elaps [s]", "eval/s", "chksum") ;

#define SFX f
#define SFX2 FLT
#define T float
#define SQRT sqrtf
#define ABS  fabsf
#define ONE 1.0F
#include "test_mathop_fast_resqrt.tc"
#undef ONE
#undef ABS
#undef SQRT
#undef T
#undef SFX2
#undef SFX

#define SFX d
#define SFX2 DBL
#define T float
#define SQRT sqrt
#define ABS  fabs
#define ONE 1.0
#include "test_mathop_fast_resqrt.tc"
#undef ONE
#undef ABS
#undef SQRT
#undef T
#undef SFX2
#undef SFX

  VL_PRINTF("\n") ;

  /* -----------------------------------------------------------------
   *                                                  vl_fast_sqrt_ui*
   * -------------------------------------------------------------- */

  VL_PRINTF ("%20s %10s %10s %10s\n", "func", "elaps [s]", "eval/s", "chksum") ;

#undef SFX
#undef T
#undef STEP
#define SFX 32
#define T vl_uint32
#define STEP 7
#include "test_mathop_fast_sqrt_ui.tc"

#undef SFX
#undef T
#undef STEP
#define SFX 16
#define T vl_uint16
#define STEP 0
#include "test_mathop_fast_sqrt_ui.tc"

#undef SFX
#undef T
#undef STEP
#define SFX 8
#define T vl_uint8
#define STEP 0
#include "test_mathop_fast_sqrt_ui.tc"

  return error ;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
callq 0x1040
movq %rax, %r9
leaq 0xef3(%rip), %rdi       # 0x2098
leaq 0xf01(%rip), %rsi       # 0x20ad
leaq 0xeff(%rip), %rdx       # 0x20b2
leaq 0xf02(%rip), %rcx       # 0x20bc
leaq 0xf02(%rip), %r8        # 0x20c3
xorl %eax, %eax
callq *%r9
xorps %xmm5, %xmm5
movss 0xe32(%rip), %xmm8      # 0x2004
movss 0xe2e(%rip), %xmm6      # 0x2008
movss 0xe2a(%rip), %xmm7      # 0x200c
movss 0xe25(%rip), %xmm9      # 0x2010
movss 0xe20(%rip), %xmm10     # 0x2014
movss 0xe1b(%rip), %xmm12     # 0x2018
movsd 0xe3b(%rip), %xmm3      # 0x2040
movss 0xe0f(%rip), %xmm4      # 0x201c
xorps %xmm11, %xmm11
movaps %xmm6, %xmm13
mulss %xmm7, %xmm13
ucomiss %xmm5, %xmm6
jb 0x1228
xorps %xmm0, %xmm0
sqrtss %xmm6, %xmm0
jmp 0x129c
movaps %xmm6, %xmm0
movss %xmm6, 0x10(%rsp)
movss %xmm8, 0x14(%rsp)
movss %xmm11, 0x8(%rsp)
movss %xmm13, 0x18(%rsp)
callq 0x1060
movss 0x18(%rsp), %xmm13
movss 0xdbd(%rip), %xmm12     # 0x2018
movss 0x8(%rsp), %xmm11
movss 0xda9(%rip), %xmm10     # 0x2014
movss 0xd9c(%rip), %xmm9      # 0x2010
movss 0x14(%rsp), %xmm8
movss 0xd89(%rip), %xmm7      # 0x200c
movss 0x10(%rsp), %xmm6
xorps %xmm5, %xmm5
movss 0xd88(%rip), %xmm4      # 0x201c
movsd 0xda4(%rip), %xmm3      # 0x2040
movaps %xmm10, %xmm1
divss %xmm0, %xmm1
movd %xmm6, %eax
sarl %eax
movl $0x5f3759df, %ecx       # imm = 0x5F3759DF
subl %eax, %ecx
movd %ecx, %xmm0
movaps %xmm13, %xmm2
mulss %xmm0, %xmm2
mulss %xmm0, %xmm2
addss %xmm9, %xmm2
mulss %xmm0, %xmm2
mulss %xmm2, %xmm13
mulss %xmm2, %xmm13
addss %xmm9, %xmm13
mulss %xmm2, %xmm13
subss %xmm13, %xmm1
andps 0xd46(%rip), %xmm1      # 0x2030
divss %xmm13, %xmm1
mulss %xmm12, %xmm1
maxss %xmm1, %xmm11
addss %xmm8, %xmm6
xorps %xmm0, %xmm0
cvtss2sd %xmm8, %xmm0
mulsd %xmm3, %xmm0
xorps %xmm8, %xmm8
cvtsd2ss %xmm0, %xmm8
ucomiss %xmm6, %xmm4
ja 0x1211
movss %xmm11, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
xorps %xmm0, %xmm0
cvtss2sd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0xd9a(%rip), %rdi       # 0x20db
leaq 0xd82(%rip), %rsi       # 0x20ca
movb $0x1, %al
callq *%rcx
xorl %ebp, %ebp
movsd 0x8(%rsp), %xmm0
ucomisd 0xcec(%rip), %xmm0      # 0x2048
movl $0x0, %ebx
jbe 0x1382
callq 0x1040
movq %rax, %rcx
leaq 0xd8c(%rip), %rdi       # 0x20fe
leaq 0xd51(%rip), %rsi       # 0x20ca
xorl %eax, %eax
callq *%rcx
movl $0x1, %ebx
callq 0x1030
movss 0xc75(%rip), %xmm1      # 0x2004
movss 0xc71(%rip), %xmm0      # 0x2008
movsd 0xca1(%rip), %xmm2      # 0x2040
movss 0xc75(%rip), %xmm3      # 0x201c
incl %ebp
addss %xmm1, %xmm0
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm1
cvtsd2ss %xmm1, %xmm1
ucomiss %xmm0, %xmm3
ja 0x13a7
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0xd3e(%rip), %rdi       # 0x2127
leaq 0xcda(%rip), %rsi       # 0x20ca
movb $0x2, %al
callq *%rcx
callq 0x1030
movss 0xc1b(%rip), %xmm2      # 0x201c
movsd 0xc37(%rip), %xmm1      # 0x2040
xorl %ebp, %ebp
movss 0xbf1(%rip), %xmm3      # 0x2004
movss 0xbed(%rip), %xmm0      # 0x2008
xorps %xmm4, %xmm4
ucomiss %xmm4, %xmm0
jae 0x1453
movss %xmm0, 0x8(%rsp)
movss %xmm3, 0x10(%rsp)
callq 0x1060
movss 0x10(%rsp), %xmm3
xorps %xmm4, %xmm4
movss 0x8(%rsp), %xmm0
movss 0xbd1(%rip), %xmm2      # 0x201c
movsd 0xbed(%rip), %xmm1      # 0x2040
incl %ebp
addss %xmm3, %xmm0
cvtss2sd %xmm3, %xmm3
mulsd %xmm1, %xmm3
cvtsd2ss %xmm3, %xmm3
ucomiss %xmm0, %xmm2
ja 0x141e
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0xc92(%rip), %rdi       # 0x2127
leaq 0xc9f(%rip), %rsi       # 0x213b
movb $0x2, %al
callq *%rcx
movsd 0xb98(%rip), %xmm3      # 0x2040
movss 0xb70(%rip), %xmm7      # 0x2020
xorps %xmm5, %xmm5
xorps %xmm6, %xmm6
movabsq $0x5fe6ec85e7de30da, %r14 # imm = 0x5FE6EC85E7DE30DA
movsd 0xb87(%rip), %xmm8      # 0x2050
movsd 0xb86(%rip), %xmm9      # 0x2058
movsd 0xb85(%rip), %xmm10     # 0x2060
movsd 0xb84(%rip), %xmm12     # 0x2068
movsd 0xb84(%rip), %xmm4      # 0x2070
xorpd %xmm1, %xmm1
xorps %xmm11, %xmm11
movapd %xmm1, %xmm13
mulsd %xmm8, %xmm13
ucomisd %xmm6, %xmm1
jb 0x1510
xorps %xmm0, %xmm0
sqrtsd %xmm1, %xmm0
jmp 0x1590
movapd %xmm1, %xmm0
movss %xmm5, 0x10(%rsp)
movss %xmm7, 0x14(%rsp)
movss %xmm11, 0x8(%rsp)
movsd %xmm13, 0x18(%rsp)
movsd %xmm1, 0x20(%rsp)
callq 0x1080
movsd 0x20(%rsp), %xmm1
movsd 0x18(%rsp), %xmm13
movsd 0xb19(%rip), %xmm12     # 0x2068
movss 0x8(%rsp), %xmm11
movsd 0xb01(%rip), %xmm10     # 0x2060
movsd 0xaf0(%rip), %xmm9      # 0x2058
movsd 0xadf(%rip), %xmm8      # 0x2050
movss 0x14(%rsp), %xmm7
xorps %xmm6, %xmm6
movss 0x10(%rsp), %xmm5
movsd 0xae8(%rip), %xmm4      # 0x2070
movsd 0xab0(%rip), %xmm3      # 0x2040
movq %xmm1, %rax
sarq %rax
movq %r14, %rcx
subq %rax, %rcx
movq %rcx, %xmm1
movapd %xmm13, %xmm2
mulsd %xmm1, %xmm2
mulsd %xmm1, %xmm2
addsd %xmm9, %xmm2
mulsd %xmm1, %xmm2
movapd %xmm10, %xmm1
mulsd %xmm2, %xmm13
mulsd %xmm2, %xmm13
addsd %xmm9, %xmm13
mulsd %xmm2, %xmm13
xorps %xmm2, %xmm2
cvtsd2ss %xmm13, %xmm2
divsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
subss %xmm2, %xmm0
andps 0xa40(%rip), %xmm0      # 0x2030
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
cvtss2sd %xmm2, %xmm1
divsd %xmm1, %xmm0
mulsd %xmm12, %xmm0
cvtsd2ss %xmm0, %xmm0
addss %xmm7, %xmm5
xorps %xmm1, %xmm1
cvtss2sd %xmm7, %xmm1
mulsd %xmm3, %xmm1
xorps %xmm7, %xmm7
cvtsd2ss %xmm1, %xmm7
maxss %xmm0, %xmm11
xorps %xmm1, %xmm1
cvtss2sd %xmm5, %xmm1
ucomisd %xmm1, %xmm4
ja 0x14f4
movss %xmm11, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
xorps %xmm0, %xmm0
cvtss2sd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0xa82(%rip), %rdi       # 0x20db
leaq 0xae4(%rip), %rsi       # 0x2144
movb $0x1, %al
callq *%rcx
movsd 0x8(%rsp), %xmm0
ucomisd 0x9d6(%rip), %xmm0      # 0x2048
jbe 0x1693
callq 0x1040
movq %rax, %rcx
leaq 0xa7b(%rip), %rdi       # 0x20fe
leaq 0xaba(%rip), %rsi       # 0x2144
xorl %eax, %eax
callq *%rcx
movl $0x1, %ebx
callq 0x1030
xorl %ebp, %ebp
movss 0x97e(%rip), %xmm1      # 0x2020
xorpd %xmm0, %xmm0
movsd 0x992(%rip), %xmm3      # 0x2040
movsd 0x9ba(%rip), %xmm4      # 0x2070
addss %xmm1, %xmm0
cvtss2sd %xmm1, %xmm1
mulsd %xmm3, %xmm1
cvtsd2ss %xmm1, %xmm1
incl %ebp
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
ucomisd %xmm2, %xmm4
ja 0x16b6
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0xa27(%rip), %rdi       # 0x2127
leaq 0xa3d(%rip), %rsi       # 0x2144
movb $0x2, %al
callq *%rcx
callq 0x1030
movsd 0x958(%rip), %xmm2      # 0x2070
movsd 0x920(%rip), %xmm1      # 0x2040
xorl %ebp, %ebp
movss 0x8f6(%rip), %xmm5      # 0x2020
xorpd %xmm3, %xmm3
xorpd %xmm0, %xmm0
ucomiss %xmm3, %xmm0
jae 0x1767
movss %xmm0, 0x8(%rsp)
movss %xmm5, 0x10(%rsp)
callq 0x1060
movss 0x10(%rsp), %xmm5
movss 0x8(%rsp), %xmm0
xorps %xmm3, %xmm3
movsd 0x911(%rip), %xmm2      # 0x2070
movsd 0x8d9(%rip), %xmm1      # 0x2040
addss %xmm5, %xmm0
xorps %xmm4, %xmm4
cvtss2sd %xmm5, %xmm4
mulsd %xmm1, %xmm4
xorps %xmm5, %xmm5
cvtsd2ss %xmm4, %xmm5
incl %ebp
xorps %xmm4, %xmm4
cvtss2sd %xmm0, %xmm4
ucomisd %xmm4, %xmm2
ja 0x1732
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
xorps %xmm1, %xmm1
cvtsi2sd %ebp, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0x970(%rip), %rdi       # 0x2127
leaq 0x97d(%rip), %rsi       # 0x213b
movb $0x2, %al
callq *%rcx
callq 0x1040
movq %rax, %rcx
leaq 0x954(%rip), %rdi       # 0x2125
xorl %r14d, %r14d
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %r9
leaq 0x8b1(%rip), %rdi       # 0x2098
leaq 0x8bf(%rip), %rsi       # 0x20ad
leaq 0x8bd(%rip), %rdx       # 0x20b2
leaq 0x8c0(%rip), %rcx       # 0x20bc
leaq 0x8c0(%rip), %r8        # 0x20c3
xorl %eax, %eax
callq *%r9
callq 0x1030
xorl %eax, %eax
xorl %ebp, %ebp
movl $0x1e, %ecx
xorl %edx, %edx
movl %eax, %esi
leal 0x1(,%rdx,4), %edi
shll %cl, %edi
xorl %r8d, %r8d
cmpl %edi, %esi
setae %r8b
cmovbl %r14d, %edi
subl %edi, %esi
leal (%r8,%rdx,2), %edx
addl $-0x2, %ecx
cmpl $-0x2, %ecx
jne 0x181a
addl %edx, %ebp
subl $-0x80, %eax
jne 0x1811
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
leaq 0x8f6(%rip), %rdi       # 0x2155
leaq 0x8f4(%rip), %rsi       # 0x215a
xorl %r14d, %r14d
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %rcx
movsd 0x7fb(%rip), %xmm1      # 0x2078
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0x8de(%rip), %rdi       # 0x216c
movl %ebp, %esi
movb $0x2, %al
callq *%rcx
callq 0x1030
xorl %r15d, %r15d
movl %r14d, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
ucomisd 0x7e1(%rip), %xmm0      # 0x2090
jb 0x18b7
sqrtsd %xmm0, %xmm0
jmp 0x18bc
callq 0x1080
callq 0x1070
cvttsd2si %xmm0, %rax
addl %eax, %r15d
subl $-0x80, %r14d
jne 0x189c
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
leaq 0x86c(%rip), %rdi       # 0x2155
leaq 0x84b(%rip), %rsi       # 0x213b
xorl %r14d, %r14d
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %rcx
movsd 0x771(%rip), %xmm1      # 0x2078
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0x854(%rip), %rdi       # 0x216c
movl %ebp, %esi
movb $0x2, %al
callq *%rcx
cmpl %r15d, %ebp
je 0x193b
callq 0x1040
movq %rax, %rcx
leaq 0x850(%rip), %rdi       # 0x2182
xorl %eax, %eax
callq *%rcx
movl $0x1, %ebx
callq 0x1030
xorl %ebp, %ebp
xorl %eax, %eax
movl $0xe, %ecx
xorl %edx, %edx
movl %eax, %esi
leal 0x1(,%rdx,4), %edi
shll %cl, %edi
movzwl %si, %r8d
andl $0xfffd, %edi           # imm = 0xFFFD
xorl %r9d, %r9d
cmpl %r8d, %edi
setbe %r9b
cmoval %r14d, %edi
subl %edi, %esi
leal (%r9,%rdx,2), %edx
addl $-0x2, %ecx
cmpl $-0x2, %ecx
jne 0x194d
movzwl %dx, %ecx
addl %ecx, %ebp
incl %eax
cmpl $0x10000, %eax          # imm = 0x10000
jne 0x1944
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
leaq 0x7b1(%rip), %rdi       # 0x2155
leaq 0x80c(%rip), %rsi       # 0x21b7
xorl %r15d, %r15d
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %rcx
movsd 0x6be(%rip), %xmm1      # 0x2080
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
movzwl %bp, %ebp
leaq 0x7f3(%rip), %rdi       # 0x21c9
movl %ebp, %esi
movb $0x2, %al
callq *%rcx
callq 0x1030
xorl %r14d, %r14d
movzwl %r14w, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
ucomisd 0x699(%rip), %xmm0      # 0x2090
jb 0x19ff
sqrtsd %xmm0, %xmm0
jmp 0x1a04
callq 0x1080
callq 0x1070
cvttsd2si %xmm0, %rax
addl %eax, %r15d
incl %r14d
cmpl $0x10000, %r14d         # imm = 0x10000
jne 0x19e4
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
leaq 0x71e(%rip), %rdi       # 0x2155
leaq 0x6fd(%rip), %rsi       # 0x213b
xorl %r14d, %r14d
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %rcx
movsd 0x62b(%rip), %xmm1      # 0x2080
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0x763(%rip), %rdi       # 0x21c9
movl %ebp, %esi
movb $0x2, %al
callq *%rcx
movzwl %r15w, %eax
cmpl %eax, %ebp
je 0x1a8c
callq 0x1040
movq %rax, %rcx
leaq 0x75d(%rip), %rdi       # 0x21e0
xorl %eax, %eax
callq *%rcx
movl $0x1, %ebx
callq 0x1030
xorl %ebp, %ebp
xorl %eax, %eax
movl $0x6, %ecx
xorl %edx, %edx
movl %eax, %esi
addb %dl, %dl
movzbl %dl, %edx
leal 0x1(,%rdx,2), %edi
shll %cl, %edi
movzbl %sil, %esi
andl $0xfd, %edi
cmpl %esi, %edi
setbe %r8b
cmoval %r14d, %edi
subb %dil, %sil
orb %r8b, %dl
addl $-0x2, %ecx
cmpl $-0x2, %ecx
jne 0x1a9e
movzbl %dl, %ecx
addl %ecx, %ebp
incl %eax
cmpl $0x100, %eax            # imm = 0x100
jne 0x1a95
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
leaq 0x65f(%rip), %rdi       # 0x2155
leaq 0x718(%rip), %rsi       # 0x2215
xorl %r14d, %r14d
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %rcx
movsd 0x574(%rip), %xmm1      # 0x2088
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
movzbl %bpl, %ebp
leaq 0x6fd(%rip), %rdi       # 0x2226
movl %ebp, %esi
movb $0x2, %al
callq *%rcx
callq 0x1030
xorl %r15d, %r15d
movzbl %r15b, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
ucomisd 0x546(%rip), %xmm0      # 0x2090
jb 0x1b52
sqrtsd %xmm0, %xmm0
jmp 0x1b57
callq 0x1080
callq 0x1070
cvttsd2si %xmm0, %rax
addl %eax, %r14d
incl %r15d
cmpl $0x100, %r15d           # imm = 0x100
jne 0x1b37
callq 0x1050
movsd %xmm0, 0x8(%rsp)
callq 0x1040
movq %rax, %rcx
leaq 0x5cb(%rip), %rdi       # 0x2155
leaq 0x5aa(%rip), %rsi       # 0x213b
xorl %eax, %eax
callq *%rcx
callq 0x1040
movq %rax, %rcx
movsd 0x4e3(%rip), %xmm1      # 0x2088
movsd 0x8(%rsp), %xmm0
divsd %xmm0, %xmm1
leaq 0x670(%rip), %rdi       # 0x2226
movl %ebp, %esi
movb $0x2, %al
callq *%rcx
movzbl %r14b, %eax
cmpl %eax, %ebp
je 0x1bdc
callq 0x1040
movq %rax, %rcx
leaq 0x66b(%rip), %rdi       # 0x223e
xorl %eax, %eax
callq *%rcx
movl $0x1, %ebx
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq