Commit f287abd
authored
[DAG][X86] Improve custom i256/i512 AVX512 CTLZ/CTTZ Handling with MVT::i256/i512 (#168860)
This patch proposes to move the AVX512 CTLZ/CTTZ i256/i512 codegen to
ReplaceNodeResults to allow them to be declared as custom lowering -
this allows expansion of larger int types (e.g. i1024) to fallback to
them during their expansion.
However to declare these i256/i512 ops as custom, we need to add
MVT::i256/i512 simple types - I'm intending to add further large integer
handling in the future, some of which will use vector register
instructions, and its going to be much easier if this can be handled
with i128/i256/i512 types that match the vector register sizes.
This exposed a regression in NVPTX due to their use of EVT::isSimple()
to match their upper integer size bounds.1 parent 86fbaef commit f287abd
File tree
5 files changed
+792
-1217
lines changed- llvm
- include/llvm/CodeGen
- lib/Target
- NVPTX
- X86
- test
- CodeGen/X86
- TableGen
5 files changed
+792
-1217
lines changed
0 commit comments