Removed AssertZext node, which was inserted between X86ISD::SETCC and "truncate to i1".
Added a pattern to the .td file, as Eli suggested.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
LGTM... with the caveat that I'm not sure I completely understand how the AVX-512 boolean registers work.
../lib/Target/X86/X86InstrAVX512.td | ||
---|---|---|
2133 ↗ | (On Diff #65702) | Maybe you could match this with patterns rather than C++ code? |
../lib/Target/X86/X86InstrAVX512.td | ||
---|---|---|
2133 ↗ | (On Diff #65702) | I can't find another solution right now. I don't want to set a new "truncate_z" node in DAG because the regular "truncate" may be merged with "ext" nodes. I'll add Simon, may be he has another idea? |
../lib/Target/X86/X86InstrAVX512.td | ||
---|---|---|
2133 ↗ | (On Diff #65702) | Possibly split this into 2 simpler pat frags? trunc_setcc and trunc_mask_i1? Also you should probably use isa<ConstantSDNode> instead of dyn_cast<ConstantSDNode>. |