WebAssembly: floating-point comparisons

Authored by jfb on Aug 12 2015, 10:53 AM.


WebAssembly: floating-point comparisons

D11924 implemented part of the floating-point comparisons, this patch implements the rest:

  • Tell ISelLowering that all booleans are either 0 or 1.
  • Expand the eq/ne/lt/le/gt/ge floating-point comparisons to the canonical ones (similar to what Mips32r6InstrInfo.td does).
  • Add tests for ord/uno.
  • Add tests for ueq/one/ult/ule/ugt/uge.
  • Fix existing comparison tests to remove the (res & 1) code, which setBooleanContents stops from generating.

Reviewers: sunfish

Subscribers: llvm-commits, jfb

Differential Revision: http://reviews.llvm.org/D11970

llvm-svn: 244779