Skip to content

Commit f287abd

Browse files
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

5 files changed

+792
-1217
lines changed

0 commit comments

Comments
 (0)