[PATCH] D92993: [X86] WIP Swizzle the execution domains for AVX2 targets to prefer integer over floating point

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 13 13:22:29 PST 2020


craig.topper updated this revision to Diff 311468.
craig.topper added a comment.

Rebase after changing the domain for cvtsd2ss/cvtss2sd


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92993/new/

https://reviews.llvm.org/D92993

Files:
  llvm/lib/Target/X86/X86InstrInfo.cpp
  llvm/lib/Target/X86/X86InstrInfo.h
  llvm/test/CodeGen/X86/2012-07-15-broadcastfold.ll
  llvm/test/CodeGen/X86/GlobalISel/memop-vec.ll
  llvm/test/CodeGen/X86/arg-copy-elide-win64.ll
  llvm/test/CodeGen/X86/atomic-fp.ll
  llvm/test/CodeGen/X86/atomic-non-integer.ll
  llvm/test/CodeGen/X86/atomic-unordered.ll
  llvm/test/CodeGen/X86/avoid-sfb-overlaps.ll
  llvm/test/CodeGen/X86/avoid-sfb.ll
  llvm/test/CodeGen/X86/avx-cast.ll
  llvm/test/CodeGen/X86/avx-insertelt.ll
  llvm/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll
  llvm/test/CodeGen/X86/avx-intrinsics-x86.ll
  llvm/test/CodeGen/X86/avx-logic.ll
  llvm/test/CodeGen/X86/avx-vperm2x128.ll
  llvm/test/CodeGen/X86/avx-vzeroupper.ll
  llvm/test/CodeGen/X86/avx2-arith.ll
  llvm/test/CodeGen/X86/avx2-conversions.ll
  llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll
  llvm/test/CodeGen/X86/avx2-intrinsics-x86.ll
  llvm/test/CodeGen/X86/avx2-masked-gather.ll
  llvm/test/CodeGen/X86/avx2-vbroadcast.ll
  llvm/test/CodeGen/X86/avx2-vbroadcasti128.ll
  llvm/test/CodeGen/X86/avx2-vperm.ll
  llvm/test/CodeGen/X86/avx512-arith.ll
  llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
  llvm/test/CodeGen/X86/avx512-bugfix-23634.ll
  llvm/test/CodeGen/X86/avx512-bugfix-25270.ll
  llvm/test/CodeGen/X86/avx512-calling-conv.ll
  llvm/test/CodeGen/X86/avx512-cvt.ll
  llvm/test/CodeGen/X86/avx512-extract-subvector.ll
  llvm/test/CodeGen/X86/avx512-insert-extract.ll
  llvm/test/CodeGen/X86/avx512-intel-ocl.ll
  llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/avx512-intrinsics-upgrade.ll
  llvm/test/CodeGen/X86/avx512-intrinsics.ll
  llvm/test/CodeGen/X86/avx512-logic.ll
  llvm/test/CodeGen/X86/avx512-mask-op.ll
  llvm/test/CodeGen/X86/avx512-masked-memop-64-32.ll
  llvm/test/CodeGen/X86/avx512-mov.ll
  llvm/test/CodeGen/X86/avx512-regcall-Mask.ll
  llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
  llvm/test/CodeGen/X86/avx512-rotate.ll
  llvm/test/CodeGen/X86/avx512-scalar_mask.ll
  llvm/test/CodeGen/X86/avx512-select.ll
  llvm/test/CodeGen/X86/avx512-shuffles/broadcast-scalar-fp.ll
  llvm/test/CodeGen/X86/avx512-shuffles/broadcast-scalar-int.ll
  llvm/test/CodeGen/X86/avx512-shuffles/broadcast-vector-fp.ll
  llvm/test/CodeGen/X86/avx512-shuffles/broadcast-vector-int.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.ll
  llvm/test/CodeGen/X86/avx512-shuffles/unpack.ll
  llvm/test/CodeGen/X86/avx512-trunc.ll
  llvm/test/CodeGen/X86/avx512-vbroadcast.ll
  llvm/test/CodeGen/X86/avx512-vbroadcasti128.ll
  llvm/test/CodeGen/X86/avx512-vec-cmp.ll
  llvm/test/CodeGen/X86/avx512-vselect-crash.ll
  llvm/test/CodeGen/X86/avx512bw-mov.ll
  llvm/test/CodeGen/X86/avx512bwvl-mov.ll
  llvm/test/CodeGen/X86/avx512dq-intrinsics-upgrade.ll
  llvm/test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll
  llvm/test/CodeGen/X86/avx512dqvl-intrinsics.ll
  llvm/test/CodeGen/X86/avx512vl-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
  llvm/test/CodeGen/X86/avx512vl-intrinsics.ll
  llvm/test/CodeGen/X86/avx512vl-logic.ll
  llvm/test/CodeGen/X86/avx512vl-mov.ll
  llvm/test/CodeGen/X86/avx512vl-vbroadcast.ll
  llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll
  llvm/test/CodeGen/X86/avx512vp2intersect-intrinsics.ll
  llvm/test/CodeGen/X86/bool-ext-inc.ll
  llvm/test/CodeGen/X86/break-false-dep.ll
  llvm/test/CodeGen/X86/bswap-vector.ll
  llvm/test/CodeGen/X86/bug37521.ll
  llvm/test/CodeGen/X86/build-vector-128.ll
  llvm/test/CodeGen/X86/build-vector-256.ll
  llvm/test/CodeGen/X86/build-vector-512.ll
  llvm/test/CodeGen/X86/buildvec-insertvec.ll
  llvm/test/CodeGen/X86/clear_upper_vector_element_bits.ll
  llvm/test/CodeGen/X86/coalesce_commute_movsd.ll
  llvm/test/CodeGen/X86/combine-abs.ll
  llvm/test/CodeGen/X86/combine-add-ssat.ll
  llvm/test/CodeGen/X86/combine-add-usat.ll
  llvm/test/CodeGen/X86/combine-add.ll
  llvm/test/CodeGen/X86/combine-avx2-intrinsics.ll
  llvm/test/CodeGen/X86/combine-bitselect.ll
  llvm/test/CodeGen/X86/combine-fabs.ll
  llvm/test/CodeGen/X86/combine-fcopysign.ll
  llvm/test/CodeGen/X86/combine-mul.ll
  llvm/test/CodeGen/X86/combine-sdiv.ll
  llvm/test/CodeGen/X86/combine-shl.ll
  llvm/test/CodeGen/X86/combine-sra.ll
  llvm/test/CodeGen/X86/combine-srem.ll
  llvm/test/CodeGen/X86/combine-srl.ll
  llvm/test/CodeGen/X86/combine-sub-ssat.ll
  llvm/test/CodeGen/X86/combine-sub-usat.ll
  llvm/test/CodeGen/X86/combine-sub.ll
  llvm/test/CodeGen/X86/combine-subo.ll
  llvm/test/CodeGen/X86/combine-udiv.ll
  llvm/test/CodeGen/X86/combine-urem.ll
  llvm/test/CodeGen/X86/commute-blend-avx2.ll
  llvm/test/CodeGen/X86/concat-cast.ll
  llvm/test/CodeGen/X86/extract-concat.ll
  llvm/test/CodeGen/X86/extractelement-fp.ll
  llvm/test/CodeGen/X86/extractelement-index.ll
  llvm/test/CodeGen/X86/extractelement-load.ll
  llvm/test/CodeGen/X86/fast-isel-fptrunc-fpext.ll
  llvm/test/CodeGen/X86/fast-isel-select-pseudo-cmov.ll
  llvm/test/CodeGen/X86/fast-isel-store.ll
  llvm/test/CodeGen/X86/fma.ll
  llvm/test/CodeGen/X86/fp-intrinsics.ll
  llvm/test/CodeGen/X86/fp-logic-replace.ll
  llvm/test/CodeGen/X86/fp-strict-scalar-fptoint.ll
  llvm/test/CodeGen/X86/fp-strict-scalar-inttofp.ll
  llvm/test/CodeGen/X86/fp-strict-scalar-round.ll
  llvm/test/CodeGen/X86/fp-strict-scalar.ll
  llvm/test/CodeGen/X86/fp128-cast-strict.ll
  llvm/test/CodeGen/X86/fp128-cast.ll
  llvm/test/CodeGen/X86/fp128-i128.ll
  llvm/test/CodeGen/X86/function-subtarget-features.ll
  llvm/test/CodeGen/X86/funnel-shift.ll
  llvm/test/CodeGen/X86/i64-mem-copy.ll
  llvm/test/CodeGen/X86/i64-to-float.ll
  llvm/test/CodeGen/X86/insert-into-constant-vector.ll
  llvm/test/CodeGen/X86/insert-loaded-scalar.ll
  llvm/test/CodeGen/X86/insertelement-shuffle.ll
  llvm/test/CodeGen/X86/insertelement-var-index.ll
  llvm/test/CodeGen/X86/insertelement-zero.ll
  llvm/test/CodeGen/X86/insertps-combine.ll
  llvm/test/CodeGen/X86/keylocker-intrinsics.ll
  llvm/test/CodeGen/X86/known-signbits-vector.ll
  llvm/test/CodeGen/X86/llrint-conv.ll
  llvm/test/CodeGen/X86/load-partial.ll
  llvm/test/CodeGen/X86/load-scalar-as-vector.ll
  llvm/test/CodeGen/X86/masked_compressstore.ll
  llvm/test/CodeGen/X86/masked_expandload.ll
  llvm/test/CodeGen/X86/masked_gather.ll
  llvm/test/CodeGen/X86/masked_gather_scatter_widen.ll
  llvm/test/CodeGen/X86/masked_load.ll
  llvm/test/CodeGen/X86/masked_store.ll
  llvm/test/CodeGen/X86/memcpy.ll
  llvm/test/CodeGen/X86/memset-nonzero.ll
  llvm/test/CodeGen/X86/memset-sse-stack-realignment.ll
  llvm/test/CodeGen/X86/memset-zero.ll
  llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
  llvm/test/CodeGen/X86/merge-consecutive-loads-256.ll
  llvm/test/CodeGen/X86/merge-consecutive-loads-512.ll
  llvm/test/CodeGen/X86/merge-consecutive-stores-nt.ll
  llvm/test/CodeGen/X86/min-legal-vector-width.ll
  llvm/test/CodeGen/X86/movddup-load-fold.ll
  llvm/test/CodeGen/X86/musttail-fastcall.ll
  llvm/test/CodeGen/X86/nontemporal-2.ll
  llvm/test/CodeGen/X86/nontemporal-3.ll
  llvm/test/CodeGen/X86/nontemporal-loads-2.ll
  llvm/test/CodeGen/X86/nontemporal-loads.ll
  llvm/test/CodeGen/X86/oddshuffles.ll
  llvm/test/CodeGen/X86/oddsubvector.ll
  llvm/test/CodeGen/X86/phaddsub-extract.ll
  llvm/test/CodeGen/X86/pmovsx-inreg.ll
  llvm/test/CodeGen/X86/pmul.ll
  llvm/test/CodeGen/X86/pr29112.ll
  llvm/test/CodeGen/X86/pr30284.ll
  llvm/test/CodeGen/X86/pr34657.ll
  llvm/test/CodeGen/X86/pr41619.ll
  llvm/test/CodeGen/X86/pr44140.ll
  llvm/test/CodeGen/X86/pr46532.ll
  llvm/test/CodeGen/X86/pr46820.ll
  llvm/test/CodeGen/X86/reduce-trunc-shl.ll
  llvm/test/CodeGen/X86/rotate-extract-vector.ll
  llvm/test/CodeGen/X86/rotate_vec.ll
  llvm/test/CodeGen/X86/scalar-fp-to-i32.ll
  llvm/test/CodeGen/X86/scalar-fp-to-i64.ll
  llvm/test/CodeGen/X86/scalar-int-to-fp.ll
  llvm/test/CodeGen/X86/select-of-fp-constants.ll
  llvm/test/CodeGen/X86/sha.ll
  llvm/test/CodeGen/X86/shuffle-of-splat-multiuses.ll
  llvm/test/CodeGen/X86/shuffle-strided-with-offset-128.ll
  llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll
  llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
  llvm/test/CodeGen/X86/splat-const.ll
  llvm/test/CodeGen/X86/splat-for-size.ll
  llvm/test/CodeGen/X86/srem-seteq-vec-splat.ll
  llvm/test/CodeGen/X86/sse-fsignum.ll
  llvm/test/CodeGen/X86/sse-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/sse-intrinsics-x86-upgrade.ll
  llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel-x86_64.ll
  llvm/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll
  llvm/test/CodeGen/X86/sse2-intrinsics-x86.ll
  llvm/test/CodeGen/X86/sse2.ll
  llvm/test/CodeGen/X86/sse3-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/sse41-intrinsics-fast-isel.ll
  llvm/test/CodeGen/X86/sse41-intrinsics-x86-upgrade.ll
  llvm/test/CodeGen/X86/sse41-intrinsics-x86.ll
  llvm/test/CodeGen/X86/sse41.ll
  llvm/test/CodeGen/X86/stack-folding-avx512bf16.ll
  llvm/test/CodeGen/X86/stack-folding-avx512vp2intersect.ll
  llvm/test/CodeGen/X86/stack-folding-fp-avx512.ll
  llvm/test/CodeGen/X86/stack-folding-fp-avx512vl.ll
  llvm/test/CodeGen/X86/stack-folding-int-avx2.ll
  llvm/test/CodeGen/X86/stack-folding-int-avx512.ll
  llvm/test/CodeGen/X86/stack-folding-int-avx512vl.ll
  llvm/test/CodeGen/X86/stack-folding-int-avx512vnni.ll
  llvm/test/CodeGen/X86/stack-folding-int-avxvnni.ll
  llvm/test/CodeGen/X86/statepoint-no-realign-stack.ll
  llvm/test/CodeGen/X86/subvector-broadcast.ll
  llvm/test/CodeGen/X86/swap.ll
  llvm/test/CodeGen/X86/swizzle-avx2.ll
  llvm/test/CodeGen/X86/trunc-subvector.ll
  llvm/test/CodeGen/X86/unaligned-32-byte-memops.ll
  llvm/test/CodeGen/X86/urem-seteq-vec-splat.ll
  llvm/test/CodeGen/X86/var-permute-256.ll
  llvm/test/CodeGen/X86/var-permute-512.ll
  llvm/test/CodeGen/X86/vec-loadsingles-alignment.ll
  llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll
  llvm/test/CodeGen/X86/vec-strict-fptoint-256.ll
  llvm/test/CodeGen/X86/vec-strict-inttofp-128.ll
  llvm/test/CodeGen/X86/vec-strict-inttofp-256.ll
  llvm/test/CodeGen/X86/vec-strict-inttofp-512.ll
  llvm/test/CodeGen/X86/vec_fabs.ll
  llvm/test/CodeGen/X86/vec_floor.ll
  llvm/test/CodeGen/X86/vec_fp_to_int.ll
  llvm/test/CodeGen/X86/vec_fpext.ll
  llvm/test/CodeGen/X86/vec_int_to_fp.ll
  llvm/test/CodeGen/X86/vec_minmax_sint.ll
  llvm/test/CodeGen/X86/vec_minmax_uint.ll
  llvm/test/CodeGen/X86/vec_ss_load_fold.ll
  llvm/test/CodeGen/X86/vector-bitreverse.ll
  llvm/test/CodeGen/X86/vector-blend.ll
  llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
  llvm/test/CodeGen/X86/vector-extend-inreg.ll
  llvm/test/CodeGen/X86/vector-half-conversions.ll
  llvm/test/CodeGen/X86/vector-idiv.ll
  llvm/test/CodeGen/X86/vector-interleave.ll
  llvm/test/CodeGen/X86/vector-lzcnt-128.ll
  llvm/test/CodeGen/X86/vector-lzcnt-256.ll
  llvm/test/CodeGen/X86/vector-mul.ll
  llvm/test/CodeGen/X86/vector-partial-undef.ll
  llvm/test/CodeGen/X86/vector-popcnt-128.ll
  llvm/test/CodeGen/X86/vector-popcnt-256.ll
  llvm/test/CodeGen/X86/vector-shuffle-128-unpck.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-128-v4.ll
  llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
  (33 more files...)



More information about the llvm-commits mailing list