Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

[X86] Test assembly codegen for intrinsics #24579

Open Quuxplusone opened 9 years ago

Quuxplusone commented 9 years ago
Bugzilla Link PR24580
Status NEW
Importance P normal
Reported by Ahmed Bougacha (ahmed@bougacha.org)
Reported on 2015-08-25 18:06:08 -0700
Last modified on 2017-10-06 04:01:44 -0700
Version trunk
Hardware PC All
CC ahmed@bougacha.org, echristo@gmail.com, llvm-bugs@lists.llvm.org, llvm-dev@redking.me.uk, spatel+llvm@rotateright.com
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also PR26815

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.

Quuxplusone commented 9 years ago

Done for AVX2 in r245987.

Quuxplusone commented 9 years ago

Done for F16C in r246204.

Quuxplusone commented 9 years ago

Done for FMA4 in r246206.

Quuxplusone commented 9 years ago

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?

Quuxplusone commented 9 years ago

Done for XOP in r246211.

Quuxplusone commented 9 years ago

Done for 3DNow! in r246223.

Quuxplusone commented 9 years ago

Done for SSE42 in r246944.

Quuxplusone commented 9 years ago

Done for SSE3 in r246945.

Quuxplusone commented 9 years ago

Done for SSE41 in r246947.

Quuxplusone commented 9 years ago

Done for SSSE3 in r246948.

Quuxplusone commented 9 years ago

Done for SSE4A in r246974.

Quuxplusone commented 9 years ago

Most MMX builtins/intrinsics are done as of r253169.

Quuxplusone commented 8 years ago

Most SSE2 builtins/intrinsics are done as of r254262.

Quuxplusone commented 8 years ago
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.