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.