[AArch64] Match fminnum/fmaxnum for vector fminnm/fmaxnm instead of an intrinsic.
authorJames Molloy <james.molloy@arm.com>
Tue, 11 Aug 2015 12:06:37 +0000 (12:06 +0000)
committerJames Molloy <james.molloy@arm.com>
Tue, 11 Aug 2015 12:06:37 +0000 (12:06 +0000)
commit3b4cd46ad5efb8d5c2b67fad351a301f71e0ba3d
tree468acb2084e8ebca8e3bd29a78a8c9215668a30e
parent42fd74f775c4444c44d9deec17c0f5c81648bc1a
[AArch64] Match fminnum/fmaxnum for vector fminnm/fmaxnm instead of an intrinsic.

Lower Intrinsic::aarch64_neon_fmin/fmax to fminnum/fmannum and match that instead. Minimal functional change:

  - Extra tests added because coverage of scalar fminnm/fmaxnm instructions was nonexistant.
  - f16 test updated because now we actually generate scalar fminnm/fmaxnm we no longer need to bail out to a libcall!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244595 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64InstrInfo.td
test/CodeGen/AArch64/arm64-vminmaxnm.ll
test/CodeGen/AArch64/f16-instructions.ll