llvm-project/llvm/test/Transforms/InstCombine/X86
Philip Reames 06f136f61e [instcombine][x86] Converted pdep/pext with shifted mask to simple arithmetic
If the mask of a pdep or pext instruction is a shift masked (i.e. one contiguous block of ones) we need at most one and and one shift to represent the operation without the intrinsic. One all platforms I know of, this is faster than the pdep/pext.

The cost modelling for multiple contiguous blocks might be worth exploring in a follow up, but it's not relevant for my current use case. It would almost certainly be a win on AMDs where these are really really slow though.

Differential Revision: https://reviews.llvm.org/D87861
2020-09-18 14:54:24 -07:00
..
2009-03-23-i80-fp80.ll
addcarry.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
blend_x86.ll
clmulqdq.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
lit.local.cfg
pr2645-1.ll
shufflemask-undef.ll
x86-avx2.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-avx512.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-bmi-tbm.ll [instcombine][x86] Converted pdep/pext with shifted mask to simple arithmetic 2020-09-18 14:54:24 -07:00
x86-crc32-demanded.ll
x86-f16c.ll
x86-fma.ll
x86-insertps.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-masked-memops.ll [InstCombine][X86] Covert masked load/stores with (sign extended) bool vector masks to generic intrinsics. 2020-09-12 15:09:28 +01:00
x86-movmsk.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-muldq.ll
x86-pack.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-pshufb.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-sse.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-sse2.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-sse4a.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-sse41.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-vec_demanded_elts.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-vector-shifts.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-vpermil.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
x86-xop.ll [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00