// File: /workspace/github_cpp_makefile_star2_O1/onai[P]npio/./npio.h
// Function: int npio::save<float>(int, unsigned long, unsigned long const*, float const*)
int save(int fd, size_t nDim, const size_t *shape, const T* data)
{
  npio_Array array;
  npio_init_array(&array);
  array.dim = nDim;
  array.shape = (size_t*) shape;
  array.floating_point = Traits<T>::floating_point;
  array.is_signed = Traits<T>::is_signed;
  array.bit_width = Traits<T>::bit_width;
  array.data = (char*) data;

  return npio_save_fd(fd, &array);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10018, %rsp          # imm = 0x10018
movq %rcx, 0x8(%rsp)
movq %rdx, %r14
movq %rsi, %r15
movl %edi, 0x4(%rsp)
movabsq $0x159504d554e93, %rax  # imm = 0x159504D554E93
leaq 0x1a(%rsp), %rdi
movq %rax, -0xa(%rdi)
leaq 0x939(%rip), %rsi       # 0x2031
movl $0x3c, %edx
movl $0x66, %ecx
movl $0x4, %r8d
xorl %eax, %eax
callq 0x1040
movslq %eax, %rbx
leaq (%rsp,%rbx), %rdi
addq $0x1a, %rdi
leaq 0x925(%rip), %rsi       # 0x2046
leaq 0x934(%rip), %rdx       # 0x205c
xorl %eax, %eax
callq 0x1040
cltq
leaq (%rbx,%rax), %rcx
addq $0xa, %rcx
movabsq $0x3a22657061687322, %rdx # imm = 0x3A22657061687322
movq %rdx, 0x10(%rsp,%rcx)
movl $0x28203a, 0x17(%rsp,%rcx) # imm = 0x28203A
addq %rbx, %rax
addq $0x14, %rax
testq %r15, %r15
je 0x17aa
leaq (%rsp,%rcx), %rdi
addq $0x1a, %rdi
xorl %ebx, %ebx
leaq 0x900(%rip), %r12       # 0x206d
xorl %r13d, %r13d
movq %rax, %rbp
movl $0x10000, %esi          # imm = 0x10000
subq %rax, %rsi
movq (%r14,%rbx,8), %rcx
movq %r12, %rdx
xorl %eax, %eax
callq 0x10c0
cltq
addq %rbp, %rax
cmpq $0xfffd, %rax           # imm = 0xFFFD
jge 0x1848
incq %rbx
leaq (%rsp,%rax), %rdi
addq $0x10, %rdi
cmpq %rbx, %r15
jne 0x1770
leaq (%rsp,%rax), %r12
addq $0x13, %r12
movl $0x207d29, -0x3(%r12)   # imm = 0x207D29
leaq 0x3(%rax), %rbx
cmpq $0xfffd, %rax           # imm = 0xFFFD
setge %dl
testb $0xf, %bl
sete %cl
orb %cl, %dl
jne 0x1821
movl $0xfffc, %edx           # imm = 0xFFFC
subq %rax, %rdx
movl $0xc, %ecx
subl %eax, %ecx
andl $0xf, %ecx
cmpq %rcx, %rdx
cmovaeq %rcx, %rdx
incq %rdx
movq %r12, %rdi
movl $0x20, %esi
callq 0x1070
movq %rbx, %rdx
incq %rbx
movq %rbx, %rax
andq $0xf, %rax
sete %cl
cmpq $0xfffe, %rdx           # imm = 0xFFFE
jg 0x1819
testq %rax, %rax
jne 0x17fb
leaq (%rsp,%rbx), %r12
addq $0x10, %r12
xorl %eax, %eax
testb %cl, %cl
je 0x183e
movb $0xa, -0x1(%r12)
addq $-0xa, %rbx
movb %bl, 0x18(%rsp)
movb %bh, 0x19(%rsp)
movb $0x1, %r13b
jmp 0x184d
movl $0x22, %eax
xorl %r13d, %r13d
jmp 0x184d
movl $0x22, %eax
testb %r13b, %r13b
je 0x18bf
leaq 0x10(%rsp), %rsi
subq %rsi, %r12
movl 0x4(%rsp), %edi
movq %r12, %rdx
callq 0x1050
cmpq %r12, %rax
jl 0x18b8
testq %r15, %r15
je 0x1897
movl $0x1, %eax
xorl %ecx, %ecx
imulq (%r14,%rcx,8), %rax
incq %rcx
cmpq %rcx, %r15
jne 0x1877
shlq $0x2, %rax
movabsq $0x1ffffffffffffffc, %r14 # imm = 0x1FFFFFFFFFFFFFFC
andq %rax, %r14
jmp 0x189d
movl $0x4, %r14d
movl 0x4(%rsp), %edi
movq 0x8(%rsp), %rsi
movq %r14, %rdx
callq 0x1050
movq %rax, %rcx
xorl %eax, %eax
cmpq %r14, %rcx
je 0x18bf
callq 0x1030
movl (%rax), %eax
addq $0x10018, %rsp          # imm = 0x10018
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq