Files
clang-p2996/llvm/test/CodeGen/ARM
Chad Rosier fa8d89327f The Neon VCVT (between floating-point and fixed-point, Advanced SIMD)
instructions can be used to match combinations of multiply/divide and VCVT 
(between floating-point and integer, Advanced SIMD).  Basically the VCVT 
immediate operand that specifies the number of fraction bits corresponds to a 
floating-point multiply or divide by the corresponding power of 2.

For example, VCVT (floating-point to fixed-point, Advanced SIMD) can replace a 
combination of VMUL and VCVT (floating-point to integer) as follows:

Example (assume d17 = <float 8.000000e+00, float 8.000000e+00>):
  vmul.f32        d16, d17, d16
  vcvt.s32.f32    d16, d16
becomes:
  vcvt.s32.f32    d16, d16, #3

Similarly, VCVT (fixed-point to floating-point, Advanced SIMD) can replace a 
combinations of VCVT (integer to floating-point) and VDIV as follows:

Example (assume d17 = <float 8.000000e+00, float 8.000000e+00>):
  vcvt.f32.s32    d16, d16
  vdiv.f32        d16, d17, d16
becomes:
  vcvt.f32.s32    d16, d16, #3

llvm-svn: 133813
2011-06-24 19:23:04 +00:00
..
2010-11-03 18:21:33 +00:00
2010-08-04 21:56:30 +00:00
2010-09-17 21:46:16 +00:00
2010-10-22 21:55:03 +00:00
2011-06-22 19:42:14 +00:00
2010-01-19 00:35:20 +00:00
2011-06-22 00:03:42 +00:00
2011-04-21 20:16:43 +00:00
2011-03-14 21:05:21 +00:00
2010-09-02 20:19:24 +00:00
2010-03-14 18:42:52 +00:00
2011-04-05 18:41:40 +00:00
2011-03-23 23:34:19 +00:00
2010-04-17 16:29:15 +00:00
2010-04-17 16:29:15 +00:00
2010-02-08 23:47:34 +00:00
2010-06-04 01:01:24 +00:00
2011-04-05 18:41:40 +00:00
2010-06-04 23:28:13 +00:00
2009-10-21 08:15:52 +00:00
2010-10-22 22:04:28 +00:00
2011-04-05 18:41:40 +00:00
2011-03-15 01:49:08 +00:00
2011-04-01 03:36:33 +00:00
2010-08-30 23:41:49 +00:00
2010-11-29 22:39:38 +00:00
2011-03-15 20:47:26 +00:00
2009-10-07 20:51:42 +00:00
2011-06-16 01:24:24 +00:00