NFC.
Added code gen regression test for avx512 instructions scheduling called avx512-schedule.ll
This patch is in preparation of a larger patch of adding all SKX instruction scheduling and therefore
the scheduling for the avx512 instructions are still missing.
The avx512-schedule.ll test was formed from the following tests:
avx512bw-intrinsics.ll
avx512bwvl-intrinsics.ll
avx512cd-intrinsics.ll
avx512cdvl-intrinsics.ll
avx512dq-intrinsics.ll
avx512dqvl-intrinsics.ll
avx512-fma-intrinsics.ll
avx512-gather-scatter-intrin.ll
avx512-intrinsics.ll
avx512vpopcntdq-intrinsics.ll
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Thanks for doing this. Its pretty bulky in one file probably better to split it into *-schedule.ll files that match the *-intrinsics.ll equivalents? At least some Memory/Broadcast tests need to be present as well to help check we're matching those instructions as well.
Updated diff after splitting the avx512 scheduling test into the following test files:
avx512bw-schedule-intrinsics.ll
avx512bwvl-schedule-intrinsics.ll
avx512cd-schedule-intrinsics.ll
avx512cdvl-schedule-intrinsics.ll
avx512dq-schedule-intrinsics.ll
avx512dqvl-schedule-intrinsics.ll
avx512-schedule-fma-intrinsics.ll
avx512-schedule-gather-scatter-intrin.ll
avx512-schedule-intrinsics.ll
avx512vpopcntdq-schedule-intrinsics.ll
The RUN commands need fixing to better test particular cpu models - I guess at the moment its just generic, knl and skx? Generic should be present (even though its set to SandyBridge right now), knl only needs to present for whatever features it supports, we can use skx for everything else. Worth testing cnl as well?
test/CodeGen/X86/avx512vpopcntdq-schedule-intrinsics.ll | ||
---|---|---|
3 | Add -mattr=+avx512vpopcntdq ? |
Updated diff after adding -mattr=+avx512vpopcntdq to the test: avx512vpopcntdq-schedule-intrinsics.ll
Had to replace all test files with new ones as they were using the avx512 intrinsics which are now in the process of being replaced by IR.
As a result I created 2 new tests which were compiled from the following regression tests:
avx512-schedule.ll:
cat avx512-arith.ll
cat avx512-cmp.ll
cat avx512-cvt.ll
cat avx512-ext.ll
cat avx512-fma.ll
cat avx512-logic.ll
cat avx512-mov.ll
cat avx512-mask-op.ll
cat avx512-vbroadcast.ll
avx512-shuffle-schedule.ll:
cat avx512-shuffles/permute.ll
cat avx512-shuffles/shuffle.ll
cat avx512-shuffles/shuffle-vec.ll
cat avx512-shuffles/unpack.ll
LGTM - they're pretty bulky, so we might end up splitting them later as instruction coverage is increased, but its OK as a first step
Add -mattr=+avx512vpopcntdq ?