llvm-project/llvm/test/Transforms/InstCombine/X86
Sanjay Patel db231ebdb0 [InstCombine] fold fake vector extract to shift+trunc
We already handle more complicated cases like:
extelt (bitcast (inselt poison, X, 0)) --> trunc (lshr X)

But we missed this simpler pattern:
https://alive2.llvm.org/ce/z/D55h64 / https://alive2.llvm.org/ce/z/GKzzRq

This is part of solving:
https://llvm.org/PR52057

I made the transform depend on legal/desirable int type to avoid creating
a shift of an illegal type (for example i128). I'm not sure if that
restriction is actually necessary, but we can change that as a follow-up
if the backend can deal with integer ops on too-wide illegal types.

The pile of AVX512 test changes are all neutral AFAICT - the x86 backend
seems to know how to turn that into the expected "kmov" instructions.

Differential Revision: https://reviews.llvm.org/D111082
2021-10-06 08:12:05 -04:00
..
2009-03-23-i80-fp80.ll
addcarry.ll
blend_x86.ll
clmulqdq.ll
lit.local.cfg
pr2645-1.ll
shufflemask-undef-inseltpoison.ll
shufflemask-undef.ll
simplify-libcalls-memcmp.ll [Analysis][SimplifyLibCalls] improve function signature check for memcmp 2021-08-15 16:11:26 -04:00
x86-addsub-inseltpoison.ll
x86-addsub.ll
x86-amx-load-store.ll
x86-amx.ll
x86-avx2-inseltpoison.ll
x86-avx2.ll
x86-avx512-inseltpoison.ll [InstCombine] fold fake vector extract to shift+trunc 2021-10-06 08:12:05 -04:00
x86-avx512.ll [InstCombine] fold fake vector extract to shift+trunc 2021-10-06 08:12:05 -04:00
x86-bmi-tbm.ll
x86-crc32-demanded.ll
x86-f16c-inseltpoison.ll [InstCombine] Update InstCombine to use poison instead of undef for shufflevector's placeholder (3/3) 2021-09-23 00:48:24 +09:00
x86-f16c.ll [InstCombine] Update InstCombine to use poison instead of undef for shufflevector's placeholder (3/3) 2021-09-23 00:48:24 +09:00
x86-fma.ll
x86-insertps.ll
x86-masked-memops.ll
x86-movmsk.ll
x86-muldq-inseltpoison.ll
x86-muldq.ll
x86-pack-inseltpoison.ll
x86-pack.ll
x86-pshufb-inseltpoison.ll
x86-pshufb.ll
x86-sse-inseltpoison.ll
x86-sse.ll
x86-sse2-inseltpoison.ll
x86-sse2.ll
x86-sse4a-inseltpoison.ll
x86-sse4a.ll
x86-sse41-inseltpoison.ll
x86-sse41.ll
x86-vec_demanded_elts-inseltpoison.ll
x86-vec_demanded_elts.ll
x86-vector-shifts-inseltpoison.ll
x86-vector-shifts.ll [ValueTracking] look through bitcast of vector in computeKnownBits 2021-06-23 11:46:46 -04:00
x86-vpermil-inseltpoison.ll
x86-vpermil.ll
x86-xop-inseltpoison.ll
x86-xop.ll