Support G_ZEXT i1 to i32/i64 instruction selection.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Widening done using G_ZEXT ( in some cases G_ANYEXT) so i need to support G_ZEXT selection in any case.
Comment Actions
ok
i assume that the reason why use have custom code for lowering is that the tablegen patterns aren't fully supported. but once they will be supported, we'll need to have various patterns for illegal types as well? for G_ZEXT or any other instructions the legalize pass creates.
lib/Target/X86/X86LegalizerInfo.cpp | ||
---|---|---|
90 ↗ | (On Diff #98161) | is the SEXT legalization intentional? |
lib/Target/X86/X86LegalizerInfo.cpp | ||
---|---|---|
90 ↗ | (On Diff #98161) | Yes, i think to mark G_SEXT i1 as legal operation and lower it to AND + NEG sequence in InstructionSelector. |
lib/Target/X86/X86LegalizerInfo.cpp | ||
---|---|---|
90 ↗ | (On Diff #98161) | ok, but you're missing the legalize test for s1->s64 sext |