ARM: ensure fixed-point conversions have sane types
authorTim Northover <tnorthover@apple.com>
Fri, 28 Jun 2013 15:29:25 +0000 (15:29 +0000)
committerTim Northover <tnorthover@apple.com>
Fri, 28 Jun 2013 15:29:25 +0000 (15:29 +0000)
commitbcd8e7ad4d1dd486675e774778b3409464380f62
treea9b6076d6bcb09c454b54cb0e881291fc5405024
parenta744d41a3f8af25938e12617abe2a8d32f6eabf6
ARM: ensure fixed-point conversions have sane types

We were generating intrinsics for NEON fixed-point conversions that didn't
exist (e.g. float -> i16). There are two cases to consider:
  + iN is smaller than float. In this case we can do the conversion but need an
    extend or truncate as well.
  + iN is larger than float. In this case using the NEON conversion would be
    incorrect so we don't perform any combining.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185158 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/ARM/vcvt.ll
test/CodeGen/ARM/vdiv_combine.ll