[PATCH] [X86][AVX] Missing AVX1 memory folding float instructions

Simon Pilgrim llvm-dev at redking.me.uk
Mon Jan 19 07:18:48 PST 2015


Hi qcolombet, mkuper, andreadb, spatel,

Now that we can create much more exhaustive X86 memory folding tests, this patch adds the missing AVX1/F16C floating point instruction stack foldings I can easily test for including the scalar intrinsics (add, div, max, min, mul, sub), conversions float/int to double, half precision conversions, rounding, dot product and bit test.

I haven't added the SSE tests yet (I intend to complete the AVX1 version first and just do a 'cutdown' version for SSE with its own fix up patch for review) but I've added a couple of obviously missing SSE instructions here (just tested locally so far).

Once all the AVX1/SSE floats are done I'll start on the integer tests.

Now that scalar folding is working it broke a very old test (2006-10-07-ScalarSSEMiscompile.ll) - this test appears to make no sense as its trying to ensure that a scalar subtraction isn't folded as it 'would zero the top elts of the loaded vector' - this test just appears to be wrong to me.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D7055

Files:
  lib/Target/X86/X86InstrInfo.cpp
  test/CodeGen/X86/2006-10-07-ScalarSSEMiscompile.ll
  test/CodeGen/X86/avx1-stack-reload-folding.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7055.18390.patch
Type: text/x-patch
Size: 42347 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150119/2314b757/attachment.bin>


More information about the llvm-commits mailing list