This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX512] lowering kunpack intrinsic - llvm part
ClosedPublic

Authored by jina.nahias on Nov 7 2017, 1:31 AM.

Diff Detail

Event Timeline

jina.nahias created this revision.Nov 7 2017, 1:31 AM
jina.nahias added inline comments.Nov 7 2017, 1:36 AM
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
6–389

there are no tests here cause of a bug not related to this patch. will be added after his fixing.

craig.topper edited edge metadata.Nov 7 2017, 9:12 PM

I don't see any tests that produce kunpckbw after this change.

lib/IR/AutoUpgrade.cpp
1071

Can this just be

And = (1 << Shift) - 1;
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
6–389

I don't see any tests that produce kunpckbw after this change.

it should be here. @craig.topper

craig.topper added inline comments.Nov 13 2017, 10:49 AM
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
6–389

I only see a test case from avx512-intrinsics.ll moved to avx512-intrinsics-upgrade.ll, but its not producing a kunpckbw instruction. I don't see a test case that produces a kunpck from shift and or in this diff. Unless there's one already in trunk?

jina.nahias added inline comments.
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
6–389

there are no tests producing a kunpckbw instruction cause of a bug not related to this patch. will be added after his fixing. i wont push this commit before his fixing.
@guyblank @craig.topper

jina.nahias added inline comments.
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
6–389
jina.nahias updated this revision to Diff 125511.
lsaba accepted this revision.Dec 5 2017, 7:20 AM
This revision is now accepted and ready to land.Dec 5 2017, 7:20 AM
This revision was automatically updated to reflect the committed changes.

This has caused build bot failures on SystemZ (and others):

/home/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll:32:18: error: AVX512BW-NEXT: is not on the line after the previous match
; AVX512BW-NEXT: movq %rsi, %rax
                 ^
<stdin>:20:2: note: 'next' match was here
 movq %rsi, %rax
 ^
<stdin>:18:16: note: previous match ended here
 shlq $32, %rsi
               ^
<stdin>:19:1: note: non-matching line after previous match is here
 orq %rdi, %rsi