// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::AssertionResult testing::internal::FloatingPointLE<float>(char const*, char const*, float, float)
AssertionResult FloatingPointLE(const char* expr1,
                                const char* expr2,
                                RawType val1,
                                RawType val2) {
  // Returns success if val1 is less than val2,
  if (val1 < val2) {
    return AssertionSuccess();
  }

  // or if val1 is almost equal to val2.
  const FloatingPoint<RawType> lhs(val1), rhs(val2);
  if (lhs.AlmostEquals(rhs)) {
    return AssertionSuccess();
  }

  // Note that the above two checks will both fail if either val1 or
  // val2 is NaN, as the IEEE floating-point standard requires that
  // any predicate involving a NaN must return false.

  ::std::stringstream val1_ss;
  val1_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
          << val1;

  ::std::stringstream val2_ss;
  val2_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
          << val2;

  return AssertionFailure()
      << "Expected: (" << expr1 << ") <= (" << expr2 << ")\n"
      << "  Actual: " << StringStreamToString(&val1_ss) << " vs "
      << StringStreamToString(&val2_ss);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x3b8(%rbp)
movq %rdi, %rax
movq %rax, -0x3b0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movss %xmm0, -0x1c(%rbp)
movss %xmm1, -0x20(%rbp)
movss -0x1c(%rbp), %xmm1
movss -0x20(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x325d2
movq -0x3b8(%rbp), %rdi
callq 0x16280
jmp 0x328e6
leaq -0x24(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x45800
leaq -0x28(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x45800
leaq -0x24(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x45820
testb $0x1, %al
jne 0x325ff
jmp 0x32610
movq -0x3b8(%rbp), %rdi
callq 0x16280
jmp 0x328e6
leaq -0x1b0(%rbp), %rdi
callq 0xe4e0
leaq -0x1a0(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movl $0x8, %edi
callq 0x31330
movq -0x3c8(%rbp), %rdi
movl %eax, -0x1b4(%rbp)
movl -0x1b4(%rbp), %esi
callq 0xecf0
movq %rax, -0x3c0(%rbp)
jmp 0x32655
movq -0x3c0(%rbp), %rdi
movss -0x1c(%rbp), %xmm0
callq 0xe540
jmp 0x32668
leaq -0x350(%rbp), %rdi
callq 0xe4e0
jmp 0x32676
leaq -0x340(%rbp), %rax
movq %rax, -0x3d8(%rbp)
movl $0x8, %edi
callq 0x31330
movq -0x3d8(%rbp), %rdi
movl %eax, -0x354(%rbp)
movl -0x354(%rbp), %esi
callq 0xecf0
movq %rax, -0x3d0(%rbp)
jmp 0x326af
movq -0x3d0(%rbp), %rdi
movss -0x20(%rbp), %xmm0
callq 0xe540
jmp 0x326c2
leaq -0x368(%rbp), %rdi
callq 0x16250
jmp 0x326d0
leaq 0x58056(%rip), %rsi     # 0x8a72d
leaq -0x368(%rbp), %rdi
callq 0x32cd0
movq %rax, -0x3e0(%rbp)
jmp 0x326ec
movq -0x3e0(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x32180
movq %rax, -0x3e8(%rbp)
jmp 0x32705
movq -0x3e8(%rbp), %rdi
leaq 0x5803e(%rip), %rsi     # 0x8a751
callq 0x32500
movq %rax, -0x3f0(%rbp)
jmp 0x32721
movq -0x3f0(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x32180
movq %rax, -0x3f8(%rbp)
jmp 0x3273a
movq -0x3f8(%rbp), %rdi
leaq 0x5dfbf(%rip), %rsi     # 0x90707
callq 0x30ff0
movq %rax, -0x400(%rbp)
jmp 0x32756
movq -0x400(%rbp), %rdi
leaq 0x57f5f(%rip), %rsi     # 0x8a6c3
callq 0x30d50
movq %rax, -0x408(%rbp)
jmp 0x32772
leaq -0x388(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x17130
jmp 0x32787
movq -0x408(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x30dd0
movq %rax, -0x410(%rbp)
jmp 0x327a3
movq -0x410(%rbp), %rdi
leaq 0x57f9b(%rip), %rsi     # 0x8a74c
callq 0x32280
movq %rax, -0x418(%rbp)
jmp 0x327bf
leaq -0x3a8(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x17130
jmp 0x327d4
movq -0x418(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0x30dd0
movq %rax, -0x420(%rbp)
jmp 0x327f0
movq -0x420(%rbp), %rsi
movq -0x3b8(%rbp), %rdi
callq 0x17270
jmp 0x32805
leaq -0x3a8(%rbp), %rdi
callq 0xf058
leaq -0x388(%rbp), %rdi
callq 0xf058
leaq -0x368(%rbp), %rdi
callq 0x30d20
leaq -0x350(%rbp), %rdi
callq 0xe550
leaq -0x1b0(%rbp), %rdi
callq 0xe550
jmp 0x328e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
jmp 0x328d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
jmp 0x328cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
jmp 0x328c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
jmp 0x328b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0xf058
leaq -0x388(%rbp), %rdi
callq 0xf058
leaq -0x368(%rbp), %rdi
callq 0x30d20
leaq -0x350(%rbp), %rdi
callq 0xe550
leaq -0x1b0(%rbp), %rdi
callq 0xe550
jmp 0x328f6
movq -0x3b0(%rbp), %rax
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
movq -0x1c0(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)
nopl (%rax)