Open Quuxplusone opened 9 years ago
Done for AVX2 in r245987.
Done for F16C in r246204.
Done for FMA4 in r246206.
I'm focussing on the AMD intrinsics for now (XOP, 3DNow and MMX are up next).
If anyone is wanting to deal with some of this, splitting sse-builtins.c down into sse/sse2/sse3/ssse3/sse41/sse42 builtins files might be a good approach (by the looks of it the sse.c tests should be part of sse2-builtins.c). After that FMA and AVX (split already a bit) are probably the biggest ones.
I'm not sure how well BMI/BMI2/TBM will convert, but I guess we should try.
Should the AVX512 tests be dealt with does anyone know?
Done for XOP in r246211.
Done for 3DNow! in r246223.
Done for SSE42 in r246944.
Done for SSE3 in r246945.
Done for SSE41 in r246947.
Done for SSSE3 in r246948.
Done for SSE4A in r246974.
Most MMX builtins/intrinsics are done as of r253169.
Most SSE2 builtins/intrinsics are done as of r254262.
echristo been pointed out that putting backend codegen checks in the clang
codegen tests is a big no-no.
I've stripped the check-asm tests from most now (avx2, f16c and 3dnow still
todo) and will be re-submitting them on the llvm side as *-intrinsics-fast-
isel.ll tests. I'll be adding a big shout out comment at the top of the clang
and llvm tests that the IR produced/consumed on either side must be kept in
sync if we want accurate testing.
That'll let us make informed decisions when evaluating replacing LLVM intrinsics with native constructs.
-O0 is the important one to test, as it's generally accepted that we're free to muck with intrinsics when optimizing.
Also see the discussion for http://reviews.llvm.org/D10555 and the linked threads.