[X86] Add custom execution domain fixing for 128/256-bit integer logic operations...
authorCraig Topper <craig.topper@intel.com>
Sun, 15 Jul 2018 23:32:36 +0000 (23:32 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 15 Jul 2018 23:32:36 +0000 (23:32 +0000)
commitcdb0ed291017160ffec4dc84f88aad075945a118
tree1b412e7753726966841301a7b78f212e4997558c
parentd553ff3e2e08f659ab9977b97d9dbe518a759af0
[X86] Add custom execution domain fixing for 128/256-bit integer logic operations with AVX512F, but not AVX512DQ.

AVX512F only has integer domain logic instructions. AVX512DQ added FP domain logic instructions.

Execution domain fixing runs before EVEX->VEX. So if we have AVX512F and not AVX512DQ we fail to do execution domain switching of the logic operations. This leads to mismatches in execution domain and more test differences.

This patch adds custom domain fixing that switches EVEX integer logic operations to VEX fp logic operations if XMM16-31 are not used.

llvm-svn: 337137
28 files changed:
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/test/CodeGen/X86/avx512-cvt.ll
llvm/test/CodeGen/X86/avx512-shuffles/broadcast-scalar-fp.ll
llvm/test/CodeGen/X86/avx512-shuffles/duplicate-high.ll
llvm/test/CodeGen/X86/avx512-shuffles/duplicate-low.ll
llvm/test/CodeGen/X86/avx512-shuffles/in_lane_permute.ll
llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
llvm/test/CodeGen/X86/avx512-shuffles/permute.ll
llvm/test/CodeGen/X86/avx512-shuffles/shuffle-interleave.ll
llvm/test/CodeGen/X86/avx512-shuffles/shuffle-vec.ll
llvm/test/CodeGen/X86/avx512-shuffles/unpack.ll
llvm/test/CodeGen/X86/avx512-vbroadcasti128.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics.ll
llvm/test/CodeGen/X86/avx512vl-mov.ll
llvm/test/CodeGen/X86/combine-abs.ll
llvm/test/CodeGen/X86/nontemporal-2.ll
llvm/test/CodeGen/X86/subvector-broadcast.ll
llvm/test/CodeGen/X86/vec-copysign-avx512.ll
llvm/test/CodeGen/X86/vec_fabs.ll
llvm/test/CodeGen/X86/vector-compare-all_of.ll
llvm/test/CodeGen/X86/vector-compare-any_of.ll
llvm/test/CodeGen/X86/vector-reduce-fadd.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v2.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
llvm/test/CodeGen/X86/vector-trunc.ll
llvm/test/CodeGen/X86/vselect-pcmp.ll